一.deque介绍
deque容器为一个给定类型的元素进行线性处理,像向量一样,它能够快速的随机访问任一个元素,并且能够高效的插入和删除容器的尾部元素。。和vector不同的是,deque支持高效的插入和删除容器的尾部元素,因此也叫双端队列。
二.常用函数
2.1构造函数
- deque < ElemType>d():创建一个空的deque
- deque < ElemType> d(int n):创建含有n个元素的deque
- deque < ElemType> d(int n, const T& x):创建含有n个元素的deque,每个元素的值为x
- deque(const deque& d):复制构造函数
2.2插入函数
- void push_front(const T& x):在双端队列头部插入一个元素
- void push_fbackconst T& x):在双端队列尾部插入一个元素
- void insert(iiterator it, const T& x):在某一元素前插入一个元素
- void insert(iiterator it, iint n, const T& x):在某一元素前插n个相同的的元素x
void insert(iteratoe it. const_iterator first, const_iterator last):双端队列某一元素前插入另外一同类型向量的[first, last)区间上的元素。
2.3删除函数
- void pop_front():删除双端队列队头元素
- void pop_front():删除双端队列队尾元素
- iiterator erase(iterator it):删除双端队列某一元素
-
- iiterator erase(iterator first, iterator last):删除双端队列区间[first, last)区间上的元素
- void clear():清空双端队列
2.4遍历函数
- reference front():返回首元素的引用
- reference back():返回尾元素的引用
- iterator begin():返回队列头指针,指向第一个元素
- iterator end():返回队列尾指针,指向第尾元素的下一个位置
- iterator rbegin():方向迭代器,返回指向队列尾元素的指针
- iterator rend()():返方向迭代器,返回指向头元素前一个位置的指针
2.5判空函数
- bool empty() const:判断队列是否为空
2.6大小函数
- int size() const:返回向量中元素个数
- int max_size() const:返回最大可允许的双端队列元素个数
2.7其它函数
- void swap(deque& d):交换2个同类型队列的元素值
- void assign(int n, const T& x):将队列中第n个元素值设置为x
- void assign(const_iterator first, const_iterator last):将队列区间[first, last)上的值设置为当前队列的元素值
三.总结
deque容器和vector容器的许多函数是相似的,应该对比记忆。