C++ STL容器之 deque

deque双端队列容器,与vector容器相比较,明显的优势是很高效的添加删除首尾元素,也较容易在任意位置插入元素。

在deque容器首尾添加元素不会使任何迭代器失效,但在首尾删除元素会使指向被删元素的迭代器失效,在deque容器的任何其他位置添加或删除会使该容器的所有迭代器失效。

1.deque创建对象

(1)deque<int> de; //创建一个空的deque对象

(2)deque<int> de(n);//创建有n个元素的deque对象

(3)deque<int> de(n,value); //创建有n个元素的deque,每个元素的初始化值为value

(4)deque<int> de1(n,value); deque<int>de2(d1); //拷贝一个deque对象的各个元素值,创建一个新的deque对象

(5)int iArray[] = {1,2,3}; deque<int> de(iArray, iArray+3);//拷贝迭代器区间[first, last)的元素值,创建一个新的deque对象中

2.deque的常用函数

(1)void push_back(const T&) //在容器的尾端插入新元素value

(2)void push_front(const T&) //在容器的首端插入新元素value

(3)void pop_front() 删除deque的第一个元素

(4)void pop_back() 删除deque的最后一个元素

(5)iterator erase(iterator pos) 删除迭代器pos所指的元素

(6)iterator erase(iterator first, iterator last) 删除迭代器区间[first, last)的所有元素

(7)void clear() 调用erase函数,清除所有元素

(8)reverse_iterator rbegin() //从尾部反向遍历

(9)reverse_iterator rend() //从头部反向遍历

(10)void swap(deque&) //用于deque的交换

(11)bool empty()

(12)size_type size()

(13)size_type max_size()

(14)reference front()

(15)reference back()