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()