0x00、queue简介
queue,即"队列",和我们平时的"排队"有所类似,是一个先进先出的容器。
一张图更好理解:
可以理解为,queue为一个容器,放入1,2,3,4四件物品,则出队顺序仍然是1,2,3,4
C++STL中提供了queue的库函数,可以方便我们实现queue的数据结构。
0x01、使用之前
首先仍然要引用头文件+定义命名空间。
#include <queue>
using namespace std;
接着可以定义一个queue容器了:
queue<ElementType> q;
0x02、操作
将数据压入队列,称之为入队。可以使用push函数入队。
q.push(VARIABLE);
queue是一个先进先出,具有限制性的数据结构,所以只能通过front()来访问队首元素,或者通过back()访问队尾元素。
ElementName VariabelName = q.front();
ElementName VariabelName = q.back();
可以使用pop函数,令先进入的队首元素出队。
q.pop();
我们还可以使用empty函数,判断queue是否为空
bool isEmpty = q.empty();
使用size()可以返回queue中元素个数
int sum = q.size();
0x03、举例
#include <iostream>
#include <queue>
using namespace std;
int main(){
queue<int> q;
for(int i = 0; i < 5; i++){
q.push(i);
cout << "成功将" << i << "入队" << endl;
}
cout << endl;
while(!q.empty()){
cout << "当前队首:" << q.front() << "\t当前队尾:" << q.back();
cout << "\t当前队列大小:" << q.size() << endl;
q.pop();
}
return 0;
}
运行结果: