deque.clear(); //移除容器的所有数据 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 int num[] = { 111,222,333,444,555 }; 9 deque<int> deqInt_A(num, num + size(num)); 10 11 cout << "deqInt_A中的元素个数为…
1.deque容器概念 deque是"double-ended queue"的缩写,和vector一样都是STL的容器,唯一不同的是:deque是双端数组,而vector是单端的. . Deque 特点: deque在接口上和vector非常相似,在许多操作的地方可以直接替换. deque可以随机存取元素(支持索引值直接存取,用[]操作符或at()方法) deque头部和尾部添加或移除元素都非常快速, 但是在中部安插元素或移除元素比较费时. 使用时,包含头文件:#include <…
所谓deque,是"double-ended queue"的缩写; 它是一种动态数组形式,可以向两端发展,在尾部和头部插入元素非常迅速; 在中间插入元素比较费时,因为需要移动其它元素;(No) 双端队列容器,在序列的两端放置和删除元素是高效的; 而vector只是在序列末尾插入才是高效的.  C++ Code  1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484…
deque,故名思义,双向队列.可以在头尾进行插入删除. 而STL中采用了链表+线性表的数据结构来实现deque,因而除了满足双向队列的特点以外,还支持随机访问. 下面,贴一段代码. 总览:双向队列是由链式线性表+顺序线性表组成.支持随机访问 首先看下定义:   template >       class deque : protected _Deque_base 可知,需先分析_Deque_base   template         class _Deque_base {        …
1. deque 的大小 deque.size();              //返回容器中元素的个数 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A; 9 deqInt_A.assign(4, 111); 10 11 cout << "deqInt_A 中的元素个数为:"…
1. deque 的数据存取 这个部分和 vector 几乎一样 第一  使用下标操作 dequeName[0] = 100; //小心越界 第二  使用at 方法 如: dequeName.at(2) = 100; //小心越界 第三  接口返回的引用 dequeName.front() 和 deqIntA.back() 如下代码: 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int…
deque.insert(pos,elem); //在pos位置插入一个elem元素的拷贝,返回新数据的位置. 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A, deqInt_B; 9 10 deqInt_A.push_back(1); 11 deqInt_A.push_back(2); 12 deqInt…
deque 的赋值分下边4种方法: deque.assign(beg,end); //将[beg, end)区间中的数据拷贝赋值给本身.注意该区间是左闭右开的区间. 1 #include <iostream> 2 #include <deque> 3 4 using namespace std; 5 6 int main() 7 { 8 deque<int> deqInt_A, deqInt_B; 9 10 deqInt_A.push_back(1); 11 deqIn…
// STL(标准模板库),由三大部分组成:容器,算法,迭代器 // STL六大组件:container(容器),algorthm(算法),iterator(迭代器) // function object(仿函数),adaptor(适配器),allocator(空间适配器) // STL容器 // vector // deque(双端数组) // stack // queue // list(链表模型) // priotry_queue优先级队列 // set // multiset // ma…
序列性容器::(vector和list和deque)   erase迭代器不仅使所有指向被删元素的迭代器失效,而且使被   删元素之后的所有迭代器失效,所以不能使用erase(iter++)的方 式,但是erase的返回值为下一个有效的迭代器,所以     正确方法为::     for( iter = c.begin(); iter != c.end(); ) iter = c.erase(iter); 关联性容器::(map和set比较常用)    erase迭代器只是被删元素的迭代器失效,…