【C++/STL】5. queue队列

  • queue队列是一种先进先出(FIFO)容器
  • queue支持任意基本数据类型和STL容器
  • queue定义于queue.h,命名空间std

一、构造函数

作用代码说明
定义一个queuequeue<typename> q;typename可以是任意基础数据类型或STL容器

二、访问queue内元素

  • 由于队列本身是一个先进先出的限制性结构,因此STL中只能访问队首和队尾元素
    • 访问队首:queue.front()
    • 访问队尾:queue.back()
#include <iostream>
#include <queue>
using namespace std;

int main()
{
	queue<int> q;
	
	for(int i=0;i<5;i++)
		q.push(i);
	
	cout<<q.front()<<" "<<q.back()<<endl;
	
	return 0;
}

//输出:0 4

三、常用操作

  • 设有queue容器q
操作代码时间复杂度说明
元素x入队q.push(x)O(1)-
队首出队q.pop()O(1)-
队列判空q.empty()O(1)返回一个bool类型
访问队首元素(不影响队列)q.front()O(1)如果队列为空,front()方法会报错
访问队尾元素(不影响队列)q.back()O(1)如果队列为空,back()方法会报错
获得queue内元素个数q.size()O(1)-
#include <iostream>
#include <queue>
using namespace std;
 
int main()
{
	queue<int> q;
	
	for(int i=0;i<5;i++)					//push()方法 
		q.push(i);
	
	cout<<q.front()<<" "<<q.back()<<endl;	//front()、back()方法
	
	cout<<"size:"<<q.size()<<endl;			//size()方法
	
	cout<<"队列为空吗:"<<q.empty()<<endl;	//empty()方法 
	
	for(int i=0;i<3;i++)					//pop()方法 
		q.pop();
	
	cout<<q.front()<<" "<<q.back()<<endl;
	
	return 0;
}

四、常见用途

  • 实现广度优先搜索时,可以用queue代替手动实现队列
  • 延申:
    • STL中还有两种队列,双端队列deque和优先队列priority_queue
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端FFF

所有博文免费阅读,求打赏鼓励~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值