功能:
双端数组,可以对头端进行插入删除操作deque与vector区别:
vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关deque内部工作原理:
deque内部有个中控器,维护每段缓冲区中的内容,缓冲区中存放真实数据
中控器维护的是每个缓冲区的地址,使得使用deque时像一片连续的内存空间
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZMPFiW6E-1599204082199)(assets/clip_image002-1547547896341.jpg)]
deque容器的迭代器也是支持随机访问的功能描述:
deque容器构造函数原型:
deque<T> deqT; //默认构造形式deque(beg, end); //构造函数将[beg, end)区间中的元素拷贝给本身。deque(n, elem); //构造函数将n个elem拷贝给本身。deque(const deque &deq); //拷贝构造函数 #include<iostream> #include <deque> using namespace std; void printDeque(const deque<int>& d) { for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++) { cout << *it << " "; } cout << endl; } void test() { deque<int> d1; //无参构造 for (int i = 0; i < 10; ++i) { d1.push_back(i); } printDeque(d1); deque<int>d2(d1.begin(), d1.end()); printDeque(d2); deque<int>d3(10, 100); printDeque(d3); deque<int>d4 = d3; printDeque(d4); } int main() { test(); return 0; }C++deque容器deque构造函数
