C++中deque函数的使用方法
deque表示双端队列,在STL中,其实现类似vector,支持随机访问。主要区别在于,从deque对象的开始位置插入和删除元素的时间是固定的,而不像vector中那样是线性时间。所以多数操作发生在序列的起始和结尾处,则应考虑使用deque数据结构。此外,为了实现deque两端执行插入和删除操作的时间为固定的这一目的,deque对象的设计比vector对象更为复杂。因此,尽管二者都提供对元素的随机访问和在序列中部指向线性时间的插入和删除操作,但vector容器执行这些操作更快些。
1. 头文件包含
#include<deque>
2. 构造函数
std::deque<int> dq; //创建一个empty的int型队列
std::deque<int> dq(8); //创建一个有8个元素的int型队列,默认初始化值(value)为0
std::deque<int> dq(8, 50); //创建一个有8个元素的int型队列,默认初始化值(value)都设为50
std::deque<int> dq(dq.begin(), dq.end()); //通过迭代器创建队列
std::deque<int> dq1(dq); //通过拷贝构造创建队列
3. 常用函数方法
Operators []:可以使用[]操作符访问双向队列中单个的元素。
1. assign() 设置双向队列的值
2. at() 返回指定的元素
3. back() 返回最后一个元素
4. begin() 返回指向第一个元素的迭代器
5. clear() 删除所有元素
6. empty() 返回真如果双向队列为空
7. end() 返回指向尾部的迭代器
8. erase() 删除一个元素
9. front() 返回第一个元素
10. get_allocator() 返回双向队列的配置器
11. insert() 插入一个元素到双向队列中
12. max_size() 返回双向队列能容纳的最大元素个数
13. pop_back() 删除尾部的元素
14. pop_front() 删除头部的元素
15. push_back() 在尾部加入一个元素
16. push_front() 在头部加入一个元素
17. rbegin() 返回指向尾部的逆向迭代器
18. rend() 返回指向头部的逆向迭代器
19. resize() 改变双向队列的大小
20. size() 返回双向队列中元素的个数
21. swap() 和另一个双向队列交换元素