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, sizestd::queue<int> que1;std::cout << "que1.empty()==========" << que1.empty() << std::endl;std::cout << "que1.size()===========" << que1.size() << std::endl;//修改器:push, emplace, pop, swapstd::queue<int> que2;que2.push(0); //向除队列尾部插入0que2.push(1); //que2 = 0 1que2.push(2); //que2 = 0 1 2que2.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(); //移除首个元素 , 0std::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, backint 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