您的位置:首页 > 编程语言 > C语言/C++

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. }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: