#include<queue>的经典应用
2013-06-05 15:13
417 查看
使用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 的底层容器可以实现例如:
code:
(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 //固定大小为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; //打印51 36 28 q.pop(); //出队 } return 0; }
code:
#include<stdio.h> #include<queue> #include<string.h> 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=0;i<m;i++) { scanf("%s",&c); if(strcmp(c,"INIT")==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("NULLn"); continue; } else printf("%dn",Q[y].front()); Q[y].pop(); } } } return 0;
}
相关文章推荐
- #include <fstream> 应用
- #include <queue> 库的用法~
- #include<queue> STL 用法
- android_应用开发之(使用<include>标签重用布局)
- #include<queue> 【c++】
- #include <queue> 的使用
- #include <sys.stat.h>的作用
- 从头认识Spring-2.7 自己主动检測Bean(2)-过滤器<context:include-filter/>
- #include<stack> 主要用法
- c/c++中#include <>与#include""区别
- <s:if test>的应用
- #include<list>
- [原]找出数组中出现奇数次的元素<异或的应用>
- #include<filename.h>和#include"filename.h"的区别
- linux标准库#include <unistd.h>
- Xcode pch中加入#include <opencv2/opencv.hpp>出现#include <list>找不到symbol 的问题
- Java 面试题之反射的应用(如何在List<String> list = new ArrayList<String>();中放入Integer类型的数据)
- #include <vector>
- include <cstring>,include <string> include <string.h>的区别
- #include<>和#include""的区别(转…