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

桌上有一叠牌,从第一张牌開始从上往下依次编号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之队列的运用的更多相关文章

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

    STL 中队列的使用(queue) 基本操作: push(x) 将x压入队列的末端 pop() 弹出队列的第一个元素(队顶元素),注意此函数并不返回任何值 front() 返回第一个元素(队顶元素) ...

  2. STL优先级队列

    priority_queue 这是一个优先级队列的所有权值概念单向队列queue.在这个队列中.全部元素是按优先级排列的(也能够觉得queue是个按进入队列的先后做为优先级的优先级队列--先进入队列的 ...

  3. 基于STL的队列略解

    什么是STL 以下内容摘自这儿. STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Le ...

  4. 手写队列以及stl中队列的使用

    一,手写队列. struct queue { ; ,rear=,a[maxn]; void push(int x) { a[++rear]=x; } void pop() { first++; } i ...

  5. hdu1702 ACboy needs your help again![简单STL 栈 队列]

    目录 题目地址 题干 代码和解释 参考 题目地址 hdu1702 题干 代码和解释 本题很简单,只要掌握STL stack和STL vector的语法即可作答.记录本题是为了记录STL vector的 ...

  6. POJ 2431 Expedition (STL 优先权队列)

    Expedition Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8053   Accepted: 2359 Descri ...

  7. HDU3530【STL/单调队列/RMQ】

    题目链接[http://acm.hdu.edu.cn/showproblem.php?pid=3530] 题意:输入n,m,k;n代表n个点,在这n(n<100000)个点中找到最长的连续子序列 ...

  8. 【C++】STL之队列queue

    1.头文件 # include<queue> 2.成员函数 empty() 当队列为空时,返回true size() 返回队列内元素个数 front() 返回队首元素 back() 返回队 ...

  9. STL中队列queue的用法

    头文件:#include <queue> 建立一个队列queue < 类型 > q 加入一个新的元素q.push(a) 询问队首元素q.front() 弹出队首元素q.pop( ...

随机推荐

  1. linux命令——ll详解

    一.ll命令 ll并不是linux下一个基本的命令,它实际上是ls -l的一个别名. Ubuntu默认不支持命令ll,必须用 ls -l,这样使用起来不是很方便. 如果要使用此命令,可以作如下修改:打 ...

  2. ping++微信渠道,第二次拉起不能进行支付返回订单号重复问题

    项目中用到了支付功能,采用的是ping++实现的,上线运行一年多都很正常,但是最近突然出现有买家反映说不能进行支付的情况 通过了解和沟通之后发现发现是重复拉起失败,然后我们对问题进行了排查. 测试过程 ...

  3. Win10下 tensorflow gpu版安装

    准备: 系统环境: windows10 + Anaconda3 + Pycharm (1)环境配置: 打开Anaconda Prompt,输入清华仓库镜像,这样更新会快一些: 输入: conda co ...

  4. link2005 重复定义错误

    造成LNK2005错误主要有以下几种情况:  1.重复定义全局变量. 对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下.其实这是错误的,全局变量是针对整个工程的. 正 ...

  5. java保留n位小数

    double x = 123456789.987654312; String.format("%.nf", x) n为保留的小数位,x必须为double类型. 例如保留3位小数 S ...

  6. PyTorch学习笔记之初识word_embedding

    import torch import torch.nn as nn from torch.autograd import Variable word2id = {'hello': 0, 'world ...

  7. Ubuntu 16.04中的Dock的应用顺序调整

    操作步骤: 参考: https://askubuntu.com/questions/39805/is-there-an-easy-way-to-rearrange-or-move-the-icons- ...

  8. 从顺序随机I/O原理来讨论MYSQL MRR NLJ BNL BKA

    http://blog.itpub.net/7728585/viewspace-2129502/

  9. 【工作笔记】Git与Github经常使用使用方法

    Git安装 http://www.liaoxuefeng.com/ Git配置用户信息: git config –global user.name "SCOTT" git conf ...

  10. 自己定义一个Dialog样式的Activity窗体,切换到Dialog的方法

    首先定义一个style 在style里面加入 <style name="MyDialog" parent="@android:Theme.Dialog"& ...