deque容器为双端数组,与vector类似,但vector仅为后端 deque可以前端插入数据删除数据。
void printdeque(deque<int>& d)
{
for (deque<int>::iterator it = d.begin();it != d.end();it++)
{
cout << (*it) <<" ";
}
cout << endl;
}
// 构造函数 // deque类似双端数组
//默认构造
deque<int> de;
for (int i = 0;i < 10;i++)
de.push_back(i);
printdeque(de);
//区间构造
deque<int>d2(de.begin(), de.end());
printdeque(d2);
//重复构造
deque<int>d3(10, 100);
printdeque(d3);
//拷贝构造
deque<int>d4(de);
printdeque(d4);
//赋值操作//
deque<int>d1;
for (int i = 0;i < 10;i++)
d1.push_back(i);
printdeque(d1);
//等号赋值
deque<int>d2 = d1;
printdeque(d2);
//assign赋值
deque<int>d3;
d3.assign(d1.begin(), d1.begin()+4);
printdeque(d3);
deque<int>d4;
d4.assign(10, 100);
printdeque(d4);
//容量大小操作 //
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i);
printdeque(d1);
if (d1.empty())
cout << "d1为空" << endl;
else
cout << "d1不为空" << endl;
cout << "d1的大小为 :" << d1.size() << endl;
d1.resize(15,1); //多的地方用1来填充
printdeque(d1);
插入与删除
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i); //头插入
printdeque(d1);
d1.push_back(10); //尾插
printdeque(d1);
d1.pop_back(); //尾删
printdeque(d1);
d1.pop_front(); //头删
printdeque(d1);
///insert插入
d1.insert(d1.end(),100); //尾部插入100
d1.insert(d1.begin()+3, 11);//头部+3(第四个位置)插入11
printdeque(d1);
deque<int> d2;
d2.push_back(50);
d2.push_back(20);
d2.push_back(30);
d2.push_back(40);
d1.insert(d1.begin(), d2.begin(), d2.end());//在d1的头部插入整个d2
printdeque(d1);
//删除元素
deque<int>::iterator it = d1.begin();
it++;
d1.erase(it); //删除了第二个元素
printdeque(d1);
d1.clear(); //删除所有元素
printdeque(d1);
//访问元素//
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i); //头插入
printdeque(d1);
cout << d1.at(6) << endl; //访问下标为六的元素
cout << d1[5] << endl; //访问下标为五的元素
cout << d1.front() << endl; //访问第一个元素
cout << d1.back() << endl; //访问最后一个元素
//排序操作//
deque<int> d1;
for (int i = 0;i < 10;i++)
d1.push_front(i); //头插入
printdeque(d1);
sort(d1.begin(), d1.end());
cout << "排序后" << endl;
printdeque(d1);