容器适配器之 queue

1. std::queue

底层可以使用deque或者list,默认使用deque。

1
2
3
4
5
// Defined in header <stack>
template<
    class T,
    class Container = std::deque<T>
> class stack;

2. 创建 queue 容器对象

1
2
// 一个空的 queue 容器对象
std::queue<int> que;

1
2
// 指定底层容器
std::queue<int, std::list<int>> que;

1
2
3
// 使用底层容器实例初始化queue容器实例
std::deque<int> sq{1,2,3};
std::queue<int> que(values); // 拷贝sq的内存

1
2
3
std::deque<int> sq{1,2,3};
std::queue<int> que1(values);
std::queue<int> que2(my_queue1);  // 拷贝构造

3. 成员函数

成员函数 功能
empty() queue为空返回 true。
size() 返回 queue 中元素的个数。
front() 返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。
back() 返回 queue 中最后一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。
push(const T& obj) 在 queue 的尾部添加一个元素的副本。调用底层容器的成员函数 push_back()。
emplace() 在 queue 的尾部原地构造一个元素。
push(T&& obj) 以移动的方式在 queue 的尾部添加元素。调用底层容器的具有右值引用参数的成员函数 push_back() 完成。
pop() 删除 queue 中的第一个元素。
swap(queue &other_queue) 两个 queue 容器中的元素互换,2 个 容器中存储的元素类型以及底层采用的基础容器类型都必须相同。
comments powered by Disqus