> 文章列表 > 【STL】deque容器

【STL】deque容器

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