queue学习

std::queue 类是一种容器适配器,它提供队列的功能——尤其是 FIFO(先进先出)数据结构。此类模板用处为底层容器的包装器——只提供特定的函数集合。queue 在底层容器尾端推入元素,从首端弹出元素。

元素访问

front

访问第一个元素
(公开成员函数)

back

访问最后一个元素
(公开成员函数)
容量

empty

检查容器适配器是否为空
(公开成员函数)

size

返回元素数
(公开成员函数)
修改器

push

向队列尾部插入元素
(公开成员函数)

push_range

(C++23)

在末尾插入元素范围
(公开成员函数)

emplace

(C++11)

在尾部原位构造元素
(公开成员函数)

pop

移除首个元素
(公开成员函数)

swap

(C++11)

交换内容
(公开成员函数)

operator==operator!=operator<operator<=operator>operator>=operator<=>

(C++20)

按照字典顺序比较两个 queue 的值

源代码:

#include <cassert>
#include <iostream>
#include <queue>


int main()
{
	//1.容量函数empty, size
	std::queue<int> que1;
	std::cout << "que1.empty()==========" << que1.empty() << std::endl;
	std::cout << "que1.size()===========" << que1.size() << std::endl;
	//修改器:push, emplace, pop, swap
	std::queue<int> que2;
	que2.push(0); //向除队列尾部插入0
	que2.push(1); //que2 = 0 1
	que2.push(2); //que2 = 0 1 2
	que2.emplace(3); //que2 = 0 1 2 3  在尾部原位构造元素 
	std::cout << "que2.empty()==========" << que2.empty() << std::endl;
	std::cout << "que2.size()===========" << que2.size() << std::endl;
	que2.pop(); //移除首个元素 , 0
	std::cout << "que2.size()===========" << que2.size() << std::endl;
	que1.swap(que2); //交接内容
	std::cout << "que1.empty()==========" << que1.empty() << std::endl;
	std::cout << "que1.size()===========" << que1.size() << std::endl;
	std::cout << "que2.empty()==========" << que2.empty() << std::endl;
	std::cout << "que2.size()===========" << que2.size() << std::endl;

	//元素访问 front, back
	int front = que1.front(); //访问第一个元素
	std::cout << "que1.front()==========" << front << std::endl;
	int back = que1.back(); //访问最后一个元素
	std::cout << "que1.back()===========" << back << std::endl;
 
	std::queue<int> que3;
	bool b1 = (que1 == que3);
	bool b2 = (que1 != que3);
	bool b3 = (que1 < que3);
	bool b4 = (que1 <= que3);
	bool b5 = (que1 > que3);
	bool b6 = (que1 >= que3);
	std::cout << "(que1 == que3)========" << b1 << std::endl;
	std::cout << "(que1 != que3)========" << b2 << std::endl;
	std::cout << "(que1 < que3)=========" << b3 << std::endl;
	std::cout << "(que1 <= que3)========" << b4 << std::endl;
	std::cout << "(que1 > que3)=========" << b5 << std::endl;
	std::cout << "(que1 >= que3)========" << b6 << std::endl;
	std::cout << "que3.empty()==========" << que3.empty() << std::endl;
	std::cout << "que3.size()===========" << que3.size() << std::endl;
	que3 = que1; //赋值
	std::cout << "que3.empty()==========" << que3.empty() << std::endl;
	std::cout << "que3.size()===========" << que3.size() << std::endl;
	assert(que1.size() == 3);

	return 0;
}

运行结果:

参考

https://cplusplus.com/reference/queue/queue/

std::queue - cppreference.com

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值