c++队问题

本文介绍了C++中队列的基本操作,包括使用构造函数创建队列,元素的入队、出队、获取队首和队尾元素,以及判断队列为空和获取队列大小的方法。还展示了如何实现固定大小的队列,通过在入队前检查队列是否已满,以限制队列的容量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

进行队问题的一些学习:

      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. }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值