STL之队列的运用

卡片游戏:很好地介绍了队列的特点和应用

桌上有一叠牌,从第一张牌开始从上往下依次编号1~n。当至少还剩两张牌时进行如下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。输入n,输出每次扔掉的牌,以及最后剩下的牌。

样例输入:7

样例输出:1 3 5 7 4 2 6

代码如下:

#include<iostream>
#include<queue>
using namespace std;
queue<int> q; //声明队列
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;i++) q.push(i+1);
    while(!q.empty())
    {
        cout<<q.front()<<" ";
        q.pop();
        if(!q.empty()) //此处需要判断此时队列是否为空
        {
           q.push(q.front());
           q.pop();
        }
    }
    cout<<endl;
    return 0;
}

STL之队列的运用

时间: 2024-10-05 23:58:12

STL之队列的运用的相关文章

STL中队列(queue)的使用方法

STL 中队列的使用(queue) 基本操作: push(x) 将x压入队列的末端 pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值 front() 返回第一个元素(队顶元素) back() 返回最后被压入的元素(队尾元素) empty() 当队列为空时,返回true size() 返回队列的长度 使用方法: 头文件: #include <queue> 声明方法: 1.普通声明 queue<int>q; 2.结构体 struct node { int x, y

STL的队列和栈简单使用

STL的队列和栈简单使用 #include <iostream>#include <cstdio>#include <string.h>#include <algorithm>#include <queue>#include <stack>using namespace std;int main(){ queue<int> Q; stack<int> S; int i; for(i=1;i<=10;i++

poj 2243 bfs 利用 结构体中的step成员保存步数 ,STL的队列

//BFS #include <iostream> #include <queue> using namespace std; bool used[8][8]; int move[8][2]={1,2, -1,2, -2,1, -2,-1, -1,-2, 1,-2, 2,-1, 2,1}; struct position { int i,j; int step; position(int a,int b,int c) { i=a; j=b; step=c; } }; int mai

利用STl实现队列

队列的使用注意:1.无法输出数列,可以返回队尾或队首. 2.队列是先进后出,相当于一群人排队,队列头的人先走,后来的人站在队尾. 3.利用STL来实现普通队列: q.pop() 删除队首 q.front() 返回队首 q.back() 返回队尾 q.push(x) 队尾加入一个元素x q.empty() 队列为空则为真为0 q.size() 返回队列长度,元素个数 #include <algorithm> #include <cstring> #include <queue&

POJ 2431 Expedition (STL 优先权队列)

Expedition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8053   Accepted: 2359 Description A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Being rather poor drivers, the cows unfortunately managed to

UVA - 540 Team Queue(STL,队列 )

Team Queue Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu Submit Status Description Queues and Priority Queues are data structures which are known to most computer scientists. The Team Queue, however, is not so well known,

C++ STL queue 队列容器 基本方法

创建队列 queue<int> que; 读取队首元素 que.front(); 读取队尾元素 que.back(); 元素入队 queue.pust(); 元素出队 queue.pop(); 队列大小 queue.size(); 队列是否为空 queue.empty(); 原文地址:https://www.cnblogs.com/izayoi/p/9629488.html

STL中队列queue的用法

头文件:#include <queue> 建立一个队列queue < 类型 > q 加入一个新的元素q.push(a) 询问队首元素q.front() 弹出队首元素q.pop() 队里面有多少个元素q.size() 原文地址:https://www.cnblogs.com/yujh01/p/queue.html

OpenJudge4980:拯救行动//stl有限队列

总时间限制:  10000ms 内存限制:  65536kB 描述 公主被恶人抓走,被关押在牢房的某个地方.牢房用N*M (N, M <= 200)的矩阵来表示.矩阵中的每项可以代表道路(@).墙壁(#).和守卫(x). 英勇的骑士(r)决定孤身一人去拯救公主(a).我们假设拯救成功的表示是“骑士到达了公主所在的位置”.由于在通往公主所在位置的道路中可能遇到守卫,骑士一旦遇到守卫,必须杀死守卫才能继续前进. 现假设骑士可以向上.下.左.右四个方向移动,每移动一个位置需要1个单位时间,杀死一个守卫