C++ deque双端队列
队列(Deque)是指双端队列。它泛化了队列数据结构,即可以从前端或后端执行插入和删除操作。
1. deque 定义
定义方法如下,其中可以输入队列中的数据类型。
1
| std::deque<uint64_t> deque_name;
|
2. rbegin() rend()函数
C++ Deque rbegin()函数返回一个指向容器的最后一个元素的反向迭代器。迭代器可以递增或递减,但不能修改deque的内容。
rbegin()表示逆序开头, rend()表示逆序结尾。

注意:反向迭代器是从后向前迭代并向deque的开始移动的迭代器。
示例1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #include <iostream> #include <deque> using namespace std;
int main() { deque deq={1,2,3,4,5}; deque::reverse_iterator ritr=deq.rbegin(); for(ritr=deq.rbegin();ritr!=deq.rend();++ritr) { cout<<*ritr; cout<<" "; } return 0; }
|
输出:
示例2
1 2 3 4 5 6 7 8 9 10
| #include <iostream> #include <deque> using namespace std; int main() { deque d={"java",".net","C","C++"}; deque::reverse_iterator ritr=d.rbegin()+1; cout<<*ritr; return 0; }
|
输出:
3. push_back() push_front()函数
C++ Deque push_back()函数在deque容器的末尾添加一个新元素,并将容器的大小增加一。
C++ Deque push_front()函数在deque容器的开头插入新元素,并且容器的大小增加一。
示例1
1 2 3 4 5 6 7 8 9 10 11 12
| #include <iostream> #include <deque> using namespace std; int main() { deque<int> d={10,20,30,40}; deque<int>::iterator itr; d.push_back(50); for(itr=d.begin();itr!=d.end();++itr) cout<<*itr<<" "; return 0; }
|
输出:
4. pop_back() pop_front()函数
C++ Deque pop_back()函数从deque容器中移除最后一个元素,并且deque的大小减少一个。
C++ Deque pop_front()函数从双端队列中移除第一个元素,并将容器的大小减少一个。
示例1
1 2 3 4 5 6 7 8 9 10 11 12
| #include <iostream> #include<deque> using namespace std; int main() { deque<int> d={10,20,30,40,50}; deque<int>::iterator itr; d.pop_front(); for(itr=d.begin();itr!=d.end();++itr) cout<<*itr<<" "; return 0; }
|
输出:
5. size()函数
C++ Deque size()函数确定deque容器中的元素数量。
示例1
1 2
| deque<int> d={1,2,3,4,5}; d.size()=5;
|