这一篇学习queue容器,也叫队列容器。例如生活中的排队场景,就是一个队列。队列这种数据结构有先进先出的特点(First In First Out)FIFO, 队列有两个出口。
1.queue特点
1)队列有两头,分别队尾和对头
2)插入元素只能从队尾操作,函数是push(), 移除元素只能从对头操作,函数是pop()
3) 使用 back()获取队尾元素,front()获取对头元素
2.queue常用接口
上面这个图也已介绍一些队列的接口,这里我们先看构造函数,赋值和返回对头,队尾操作和大小,和stack其实相差差不多的
相关测试代码如下
#include <iostream>
#include <string>
#include <queue>
using namespace std;
void test01()
{
// queue 构造函数
queue<int> q;
//添加元素
cout << "is Empty? " << q.empty() << endl;
q.push(10);
q.push(20);
q.push(30);
q.push(40);
q.push(50);
//获取对头元素
cout << "front element: " << q.front() << endl;
cout << "end element: " << q.back() << endl;
// 大小
cout << "current size: " << q.size() << endl;
// 移除对头元素
q.pop();
cout << "current size: " << q.size() << endl;
}
int main()
{
test01();
system("pause");
return 0;
}
运行结果
队列和栈的区别:
1) stack, 先进后出,FILO
2)queue,先进先出,FIFO