stl(6)deque容器
1.deque容器和vector容器最大的不同是deque容器的两端都是开口的,可以从容器的头部插入或删除,也可以从尾部插入或删除。而vector容器是一个后端开口的容器,一般只能从尾部插入和删除,当然vector也支持从头部插入和删除,但是那并不是直接在头部之前插入或者直接删除头部元素,比如头部插入的时候实际上是先将所有的元素都往后面移动一个位置,将头部位置空出来,在将需要插入的元素放到空出来的头部的位置完成的,所以这样的效率其实很慢。
2.deque容器没有capacity容量的概念,它并不需要连续的存储空间。当它分配空间不足时就去再找一块新的空间,只需要管理好每段连续空间的首位地址即可。
3.deque容器的构造和迭代器和vector的完全类似
std::deque<int> deq;
for(int i =0;i<4;i++){
deq.push_back(i);
}
for (std::deque<int>::iterator it = deq.begin(); it != deq.end();it++) {
std::cout<< *it<<std::endl;
}
4.deque的赋值操作和大小操作和vector的用法基本一致
5.对deque中元素的操作相对于vector增加了下面这些方法
(1)push_front向deque头部插入元素
std::deque<int> deq;
deq.push_front(1);
(2)pop_front删除deque容器的第一个元素
std::deque<int> deq;
deq.push_back(1);
deq.push_back(2);
deq.pop_back();