【STL】deque容器
1、deque容器
双端数组,可以对头端进行插入删除操作。vector是单端。
deque与vector的区别:
- vector对于头部的插入删除效率低,数据量越大,效率越低
- deque相对而言,对头部的插入删除速度比vector快
- vector访问元素时的速度比deque快
deque<int>d1; //默认构造d1.push_back(1);d1.push_back(2);d1.push_back(3);d1.push_back(4);deque<int>d2(d1.begin(), d1.end()); //区间构造deque<int>d3(10, 3); //指定构造deque<int>d4(d3); //拷贝构造printVector(d1);
2、deque赋值操作
deque<int>d1; //默认构造deque<int>d2; //默认构造deque<int>d3; //默认构造d1.push_back(1);d1.push_back(2);d1.push_back(3);d1.push_back(4);d1[5] = 5;d2.assign(10,4);d3.assign(d1.begin(), d1.end());
3、deque大小操作
d1.resize(3);printDeque(d1);d1.resize(6, -1);printDeque(d1);d1.resize(3, -1);printDeque(d1);
4、deque插入和删除
- push_back(elem);
- push_front(elem);
- pop_back(elem);
- pop_front(elem);
- insert(pos,elem);
- insert(pos,n,elem);
- clear();
- erase(beg,end); //删除[beg,end]区间的数据,返回下一个数据位置
- erase(pos); 删除pos位置数据,返回下一个数据的位置
5、deque数据存取
- at(int idx);
- operator[];
- fornt();
- back();
6、deque容器排序
- sort(iterator beg,iterator end);
sort(d1.begin(),d1.end());