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

你可能感兴趣的:(c++,c++,算法,数据结构)