STL_queue

STL__queue_的应用

调用的时候要有头文件: #include<stdlib.h> 或 #include<cstdlib> + #include<queue> 
详细用法:
定义一个queue的变量                       queue<Type> que 
查看是否为空范例                              que.empty()    是的话返回1,不是返回0;
从已有元素后面增加元素(入队)      que.push() 
现有元素的个数                                 que.size()
显示第一个元素                                 que.front()
显示最后一个元素                              que.back()
清除第一个元素 (出队)                  que.pop()

看一个例子:

#include <cstdlib>
#include <iostream>
#include <queue> 
using namespace std;
int main()

    queue<int> myQ;
    cout<< "现在 queue 是否 empty? "<< myQ.empty() << endl; 
    cout << "push 5, push 6, push 7" << endl;
    myQ.push(5); 
    myQ.push(6); 
    myQ.push(7); 
    cout << "现在 queue 的元素有几个? " << myQ.size() << endl; 
    cout << "现在 queue 的front为何? " << myQ.front() << endl; 
    cout << "现在 queue 的rear为何? " << myQ.back() << endl; 
    cout << "pop" << endl; myQ.pop(); 
    cout << "现在 queue 的元素有几个? " << myQ.size() << endl; 
    cout << "现在 queue 的front为何? " << myQ.front() << endl; 
    cout << "现在 queue 的rear为何? " << myQ.back() << endl; 
    system("PAUSE"); 
    return 0;
}

关于队列的知识;

使用queue之前,要先利用构造函数一个队列对象,才可以进行元素的入队,出队,取队首和队尾等操作;

(1)、queue() queue<int> q; 或者 queue<int>Q[10000];

(2)、queue(const queue&) 复制构造函数

例如:用一行代码利用queue对象q1,创建一个以双向链表为底层容器的queue对象q2

queue<int,list<int>>q1;

queue<int,list<int>>q2(q1);

(3)、元素入队 函数为:push()例如:q.push(3),意思是将3入队 ,注意队列的大小不预设

(4)、元素出队 函数为:pop()例如:q.pop()

(5)、取对头元素 函数为:front()

(6)、取队尾元素 函数为:back()

(7)、判断对空    函数为:empty()

(8)、队列的大小 函数为:size()返回队列的当前元素的个数

(9)、如何实现固定大小的queue队列

在每一次元素入队列前都判断当前的队列是否满,用双向链表做queue 的底层容器可以实现

例如:

#include<iostream>
#include<list>
#include<queue>
using namespace std;
#define QUEUE_SIZE 50 //固定大小;
int main()
{
queue<int,list<int>> q;
if(q.size(QUEUE_SIZE) )
   q.push(51);
if(q.size(QUEUE_SIZE) )
   q.push(36);
if(q.size(QUEUE_SIZE))
   q.push(28);
while(!q.empty() )
{
   cout<<q.front()<<endl;
   q.pop();
}
return 0;
}


#include<iostream>
#include<cstdio>
#include<queue>
#include<stdlib>
using namespace std;
int main()
{
register int i,j;
int m,n;
char c[6];
int x,y;
while(scanf("%d %d",&n,&m)!=EOF)
{
   queue<int> Q[10000];
   for(i=1;i<m;i++)
   {
    scanf("%s",&c);
    if(strcmp(c,"INT") == 0)
    {
     for(j=1;j<=n;j++)
     {
      while(!Q[j].empty())
      {
       Q[j].pop();
      }
      continue;
     }
    }
    if(strcmp(c,"PUSH")==0)
    {
     scanf("%d %d",&x,&y);
     Q[x].push(y);
     continue;
    }
    if(strcmp(c,"POP")==0)
    {
     scanf("%d ",&y);
     if(Q[y].empty)
     {
      printf("NULL\n");continue;
     }
     else
     {
      printf("%d\n",Q[y].front());
     }
     Q[y].pop;
    }
   }
}
return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/353502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第四章: 4.1 logging模块 | 正则表达式

修改json数据然后写入json文件中 f open(1234.json,r,encodingutf-8) data f.read() data1 json.loads(data)data1[status] 1f1 open(1234.json,w,encodingutf-8)json.dump(data1,f1) hashlib md5值的用法 #加入下面这个就可以 password input(请输入密码:)m hashlib.md…

Java EE 6 VS Spring 3:Java EE杀死了Spring? 没门!

介绍 几天前&#xff0c;我在听Java Spotlight Podcast的第85集 。 在这次演讲中&#xff0c; Bert Ertman和Paul Bakker讨论了从Spring迁移到Java EE的问题。 基本上&#xff0c;在他们的介绍中&#xff0c;他们说&#xff0c;如今&#xff0c;选择Spring而不是Java EE是没有意…

蓝桥杯 n进制小数

n进制小数 将任意十进制正小数分别转换成2,3,4,5,6,7,8,9进制正小数&#xff0c;小数点后保留8位&#xff0c;并输出。例如&#xff1a;若十进制小数为0.795&#xff0c;则输出&#xff1a; 十进制正小数 0.795000 转换成 2 进制数为: 0.11001011 十进制正小数 0.795000 转换成…

状态栏编程(显示系统时间和进度条)

原文地址&#xff1a;http://welkangm.blog.163.com/blog/static/19065851020127941446182/ 显示系统时间 1、 在状态栏中设置两个新的栏位Timer和Progress。首先到ResourceView中编辑String Table&#xff0c;增加IDS_TIMER(时间),PROGRESS(进度)。然后在MainFrame中修改ind…

使用保险柜管理机密

您如何存储秘密&#xff1f; 密码&#xff0c;API密钥&#xff0c;安全令牌和机密数据属于秘密类别。 那是不应该存在的数据。 在容易猜测的位置&#xff0c;不得以纯文本格式提供。 实际上&#xff0c;不得在任何位置以明文形式存储它。 可以使用Spring Cloud Config Server或…

winScp中文乱码设置

打开一个putty窗口(图一)&#xff0c;左上角鼠标左键点击&#xff0c;弹出设置界面&#xff0c;选择Change Settings&#xff0c;在图二界面的window->translation&#xff0c;Remote character set选择UTF-8&#xff0c;Apply应用即可。 转载于:https://www.cnblogs.com/ya…

键盘布局的改进之道

原文地址&#xff1a;http://www.cppblog.com/huaxiazhihuo/archive/2013/06/29/201380.html好久没上博客了&#xff0c;自己的那么一点微末道行也不敢拿出来丢人现眼。实际上&#xff0c;过去的几年&#xff0c;真的是让C和MFC害惨了&#xff0c;一直自个儿固步自封&#xff0…

如何将二维数组作为函数的参数传递

如何将二维数组作为函数的参数传递声明&#xff1a;如果你是得道的大侠&#xff0c;这篇文章可能浪费你的时间&#xff0c;如果你坚持要看&#xff0c;我当然感觉很高兴&#xff0c;但是希望你看完了别骂我&#xff01;如果你发现我这篇文章有错误的话&#xff0c;你可以提出批…

鼠标爱心显示

/**爱心start**/(function(window,document,undefined){var hearts [];window.requestAnimationFrame (function(){return window.requestAnimationFrame ||window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.oRequestAnimationFrame ||window…

多台电脑共用一个耳机、音箱

台式机电脑声卡一般有三个插孔&#xff0c;一个是麦克风&#xff0c;一个是耳机&#xff0c;另一个就是LineIn输入口了&#xff0c;买一根AUX线&#xff0c;一头插入笔记本的耳机插口&#xff0c;另一头插入台式机linein口&#xff1b;在控制面板的声音中选择线路输入&#xff…

liferay开发文档_Liferay –简单主题开发

liferay开发文档实际上&#xff0c;Liferay的6.1版本已经走了很长一段路&#xff0c;该版本完全支持JSF和IceFaces。 我一直在努力学习它的绳索&#xff0c;因为我希望使其成为我们团队中的标准协作工具。 好的软件应用程序可以解决问题&#xff0c;但是好的软件应用程序不仅可…

ACRush 楼天城回忆录

利用假期空闲之时&#xff0c;将这几年 GCJ &#xff0c; ACM &#xff0c; TopCoder 参加的一些重要比赛作个回顾。首先是 GCJ2006 的回忆。 Google Code Jam 2006 一波三折&#xff1a; Google Code Jam 2006 是我第一次到美国参加现场的程序设计比赛。 Google Code Jam 2006…

Matlab计时函数

1. cputime 显示Matlab启动后所占用的CPU时间&#xff1b;eg: t0 cputime; 你的程序&#xff1b;timecputime-t0;2. tic&#xff0c;toc 秒表计时&#xff0c;tic是开始&#xff0c;toc是结束&#xff1b;eg: tic; 你的程序&#xff1b;toc;3. clock&#xff0c;etime 前者显示…

列表,字典表达式以及三元表达式

1.三元表达式条件成立时的返回值 if 条件 else 条件不成立时的返回值三元表达式的意义就是让一些简单的if判断写成一行&#xff0c;减少代码量def max2(x,y): if x > y: return x else: return yx10y20res x if x > y else yprint(res)2.列表生成式…

JUnit 5 –条件

最近&#xff0c;我们了解了JUnit的新扩展模型以及它如何使我们能够将自定义行为注入测试引擎。 我向你保证要看情况。 现在就开始吧&#xff01; 条件允许我们在应该执行或不应该执行测试时定义灵活的标准。 它们的正式名称是“ 条件测试执行” 。 总览 本系列中有关JUnit 5…

我的编程竞赛之路 ——中国大学生计算机编程第一人楼天城访谈

记者/陈秋歌 25岁的楼天城有“中国大学生计算机编程第一人”的称号&#xff0c;也被参加竞赛的学子们敬称为“楼教主”。他的传奇经历一直激励着众多年轻学子&#xff1a;从2001年开始参加计算机编程竞赛&#xff0c;并连获全国一等奖&#xff1b;2004年入选国家集训队&#xf…

MATLAB集合运算

intersect求两个集合的交集ismember检测集合中的元素setdiff求两个集合的差setxor求两个集合交集的非&#xff08;异或&#xff09;union求两个集合的并集unique取集合的单值元素注&#xff1a;交并等操作会对操作结果进行排序

IE8兼容性问题的解决方案

前几天&#xff0c;面试到Ie8的一些兼容问题&#xff0c;傻眼了&#xff0c;回想自己做了将近2年的移动端项目&#xff0c;ie兼容似乎没怎么做过。所以私下便开始找找ie兼容的视频或者文章学习&#xff0c;唉&#xff0c;还是不买书了&#xff0c;家里那么多书&#xff0c;都没…

jenkins部署_Jenkins:部署JEE工件

jenkins部署随着持续集成和持续交付的出现 &#xff0c;我们的构建被分为不同的步骤&#xff0c;以创建部署管道。 这些步骤中的一些步骤可以是例如编译和运行快速测试&#xff0c;运行慢速测试&#xff0c;运行自动验收测试或发布应用程序等。 部署流程的最后步骤意味着将我们…

2013年3月编程语言排行榜:有毒的Java

2013年3月12日&#xff0c;Tiobe公布了新一期编程语言排行榜。Java依旧是占据第一的位置&#xff0c;C语言紧随其后。值得注意的Objective-C持续发力&#xff0c;已经占到了第三的位置。咋一看榜单&#xff0c;前5条中C#下滑最快&#xff0c;从第3名下降到第五名。而其他语言都…