queue头文件
1.循环队列(queue)
queue<数据类型>变量名;
queue<int>q;
- front():返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue为空,返回值是未定义的。
- back():返回 queue 中最后一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue为空,返回值是未定义的。
- push(const T& obj):在 queue 的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back()来完成的。
- push(T&& obj):以移动的方式在 queue 的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数push_back() 来完成的。
- pop():删除 queue 中的第一个元素。
- size():返回 queue 中元素的个数。
- empty():如果 queue 中没有元素的话,返回 true。
- emplace():用传给 emplace() 的参数调用 T 的构造函数,在 queue 的尾部生成对象。
- swap(queue &other_q):将当前 queue 中的元素和参数 queue 中的元素交换。它们需要包含相同类型的元素。也可以调用全局函数模板 swap() 来完成同样的操作。
2.优先队列(priority_queue)
-
大根堆
priority_queue<int>q;
-
小根堆
deque头文件
双端队列(deque)
- 双端队列deque支持队列两端高效地插入或删除元素的连续性存储空间。与vector相比,deque在头部增删元素只需要O ( 1 ) O(1)O(1),并且deque像数组一样支持下标随机访问。
- 操作
操作 意义和时间复杂度 [] 随机访问 O(1) begin/end deque的头/尾迭代器O ( 1 ) front/back 队头/队尾元素O ( 1 ) push_front 从队头入队O ( 1 ) push_back 从队尾入队O ( 1 ) pop_front 从队头出队O ( 1 ) pop_back 从队尾出队O ( 1 ) clear 清空队列O ( n )