头部插入删除很快,访问元素效率会低
deque构造函数
容器设置成只读,不可以修改
赋值:
deque容器大小操作(和vector操作接口一样 )
deque插入和删除:
#include <iostream>
using namespace std;
#include <deque>
void printf(deque<int>& d1)
{
for(deque<int>::const_iterator it = d1.begin(); it != d1.end(); it++)
{
cout<<*it<<" ";
}
cout<<endl;
}
void test()
{
deque<int>d1;
//尾插
d1.push_back(10);
d1.push_back(20);
//头插
d1.push_front(100);
d1.push_front(200);
printf(d1); // 200 100 10 20
d1.pop_back(); //尾删,删掉20
printf(d1);
d1.pop_front(); //头删,删掉200
printf(d1);
}
void test2()
{
deque<int> d2;
d2.push_back(10);
d2.push_back(20);
d2.push_front(100);
d2.push_front(200);
printf(d2); // 200 100 10 20
//insert插入
d2.insert(d2.begin(),1000); // 1000 200 100 10 20
printf(d2);
d2.insert(d2.begin (),2,100); // 100 100 1000 200 100 10 20
printf(d2);
//按照区间插入
deque<int>d3;
d3.push_back(1);
d3.push_back(2);
d2.insert(d2.begin (),d3.begin(),d3.end()); // 1 2 100 100 1000 200 100 10 20
printf(d2);
//删除
d2.erase(d2.begin()); // 2 100 100 1000 200 100 10 20
deque<int>::iterator it = d2.begin();
it++;
d2.erase(it); // 2 100 1000 200 100 10 20
printf(d2);
//按区间删除
d2.erase(d2.begin(),d2.end()); // 清空
d2.clear();//清空
printf(d2);
}
int main()
{
test();
test2();
return 0;
}
deque数据存取:
deque排序(需要包含头文件#include )
利用算法对deque容器进行排序
//容器排序 默认是从小到大排序。
//对于支持随机访问迭代器的容器,都可以利用sort算法直接对其进行排序
//vector容器也可以用sort进行排序
sort(d2.begin(),d2.end());
cout<<"排序后: ";
printf(d2);