文章目录
- STL常用容器——queue容器的使用
- 1、queue容器的介绍
- 2、queue容器常用接口
- 2.1、queue容器构造函数
- 2.2、queue队列容器常用的成员函数
STL常用容器——queue容器的使用
1、queue容器的介绍
queue容器简介
queue是一种先进先出(FIFO)的数据结构,因此queue容器又称队列容器。
queue容器有 2 个开口,其中一个开口专门用来输入元素,另一个专门用来输出元素。
队列中只有队头和队尾才可以被外界使用,只能在队列容器的末尾添加新元素,只能从头部移除元素。
队列中进数据称为 — 入队 push。
队列中出数据称为 — 出队 pop。
queue容器特点
-
queue容器内的元素进出都必须符合 “先进先出” 的策略。
-
queue容器队列顶端(队头和队尾)的元素才会被取用,因此queue容器不提供遍历功能,也不提供迭代器。
-
最先进入 queue 的元素,也可以最先从 queue 中出来
2、queue容器常用接口
2.1、queue容器构造函数
创建一个空的 queue 容器
语法:queue<T> q
queue<int> q1;
创建指定的queue 容器
指定queue 容器适配器底层采用的基础容器类型,可以选择 deque 和 list
语法:queue<T, list<T>> values
queue<int, list<int>> q2;
注意:基础容器存储的数据类型必须和 queue 容器存储的数据类型保持一致
用基础容器deque来创建 queue 容器
语法:queue<T> q{}
deque<int> values{ 1,2,3 };
queue<int> q3(values);
注意:deque容器元素类型需要和 deque的容器类型相同
拷贝构造
语法:queue<int> q4(const queue &que)
deque<int> values{ 1,2,3 };
queue<int> q3(values);
queue<int> q4(q3);
2.2、queue队列容器常用的成员函数
queue容器常用的的成员函数如下:
成员函数 | 功能 |
---|
empty() | 判断队列是否为空 |
size() | 返回队列中的元素个数。 |
front() | 返回队列中第一个元素。如果队列是常量,就返回一个常引用;如果队列为空,返回值是未定义的。 |
back() | 返回队列中最后一个元素。如果队列是常量,就返回一个常引用;如果队列为空,返回值是未定义的。 |
push(const T& obj) | 在队列的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back() 来完成的。 |
push(T&& obj) | 以移动的方式在队列的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。 |
pop() | 移除队列中的第一个元素。 |
代码实例:
#include<iostream>
using namespace std;
#include<queue>
#include<list>
void test1(){
queue<int> q1;
queue<int, list<int>> q2;
deque<int> values{ 1,2,3 };
queue<int> q3(values);
queue<int> q4(q3);
for (int i = 0; i < 10; i++)
{
q2.push(i);
}
cout << "q1.size: " << q1.size() << endl;
cout << "q1首个元素: "<< q2.front() << endl;
cout << "q1末尾元素: "<< q2.back() << endl;
while (!q2.empty())
{
cout << q2.front() << endl;
q2.pop();
}
}
int main()
{
test1();
system("pause");
return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)