queue容器
-
队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端 提取元素。
-
队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的 成员函数来访问其元素。元素从队尾入队列,从队头出队列。
-
底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少支持以下操 作
empty:检测队列是否为空 size:返回队列中有效元素的个数front:返回队头元素的引用 back:返回队尾元素的引用push_back:在队列尾部入队列 pop_front:在队列头部出队列
-
标准容器类deque和list满足了这些要求。默认情况下,如果没有为queue实例化指定容器类,则使用标 准容器deque。
queue没有迭代器
queue所有元素的进出都必须符合“先进先出”的条件,只有queue的顶端元素,才有机会被外界取用,queue不提供遍历功能,也不提供迭代器。
queue 对象的默认构造
- queue 采用模板类实现,
- queue 对象的默认构造形式:queuequeT; 如: queuequeInt; //一个存放 int 的 queue 容器。
- queuequeFloat; //一个存放 float 的 queue 容器。 queuequeString; //一个存放 string 的 queue 容器。
- … … //尖括号内还可以设置指针类型或自定义类型。
queue 的处理数据的方法
- queue.push(elem); //往队尾添加元素
- queue.pop(); //从队头移除第一个元素
queue 对象的拷贝构造与赋值
- queue(constqueue&que); //拷贝构造函数
- queue&operator=(constqueue&que);//重载等号操作符
queue 的数据读取操作
- queue.back(); //返回最后一个元素
- queue.front(); //返回第一个元素
queue 的大小
-
queue.empty(); //判断队列是否为空
-
queue.size(); //返回队列的大小
#include<iostream>using namespace std; #include<queue>void test01() {queue<int>q;q.push(10); //往队尾添加元素q.push(20);q.push(30);q.push(40);while (!q.empty()){cout << "队头:" << q.front() << endl;cout << "队尾:" << q.back() << endl;//弹出队头元素q.pop();}cout << "size:" << q.size() << endl;}int main() {test01();system("pause");return 0; }