c++队问题
2016-04-16 23:10
148 查看
进行队问题的一些学习:
1. 在c++中需要包含#include <queue>头文件,下面是一些常用的定义queue<类型(如int)>
q; //使用前需定义一个queue变量,且定义时已经初始化
while(!q.empty()) q.pop(); //重复使用时,用这个初始化
q.push(1); //进队列
q.pop(); //出队列
int v=q.front(); //得到队首的值
int s=q.size(); //得到队列里元素个数
2.关于队的一些说明:
使用queue之前,要先利用构造函数一个队列对象,才可以进行元素的入队,出队,取队首和队尾等操作;
(1). queue()queue<int> q; 或者queue<int>Q[10000];
(2). queue(const queue&) 复制构造函数 例如:用一行代码利用queue对象q1,创建一个以双向链表为底层容器的 queue对象q2queue<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 的底层容器可以实现例如:
1. #include<iostream>
2. #include<list>
3. #include<queue>
4. using namespace std;
5. #define QUEUE_SIZE 50 //固定大小为50
6. int main()
7. {
8. queue<int,list<int>> q;
9. if(q.size<QUEUE_SIZE)q.push(51);
10. if(q.size<QUEUE_SIZE)q.push(36);
11. if(q.size<QUEUE_SIZE)q.push(28);
12. while(!q.empty())
13. {
14. cout<<q.front()<<endl; //打印5136 28q.pop();
15. //出队}return 0;
16. }
相关文章推荐
- c++类构造函数、析构函数与虚函数之间的那点小事
- [C/C++] 显示各种C/C++编译器的预定义宏(C11标准、C++11标准、VC、BCB、Intel、GCC)
- C++的可移植性和跨平台开发
- [LeetCode]66. Plus One
- 第三次C++作业
- C++之多重继承
- [LeetCode]48. Rotate Image
- C++实现内存复制函数(memmove解决内存重叠)
- C/C++ 自动类型转换的陷阱
- C/C++内存泄露检测
- C++笔试题(正在更新......)
- 打印正方形(c语言)
- 深搜算法-1024
- 关于c++的运算符重载那些事
- C++之深浅拷贝
- c++中new和delete的使用方法
- 【排序算法】交换排序(C++实现)
- 越来越好玩的C语言,输出的*
- dp学习之AvoidRoads解法二(算法优化)
- C++易混淆知识点整理