#include<iostream>
using namespace std;
#include<deque>
//两端操作
//push_back(elem);尾插
//push_front(elem);头插
//pop_back();尾删
//pop_front();头删
//指定位置操作
//insert(pos, elem);pos位置插入elem的拷贝,并返回新数据的位置
//insert(pos, n, elem);pos位置插入n个elem数据,无返回值
//insert(pos, begin, end);pos位置插入[begin,end]之间的数据,无返回值
//clear();清空所有数据
//erase(begin, end);删除[begin,end]之间的数据,返回下一个数据的位置
//erase(pos);删除pos位置的数据,返回下一个数据的位置
void printdeque(const deque<int> d)
{
for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)
{
cout << (*it) << " ";
}
cout << endl;
}
void test0401()
{
deque<int> d1;
for (int i = 0; i < 10; i++)
{
d1.push_back(i);
}
//尾插
d1.push_back(0);
d1.push_back(10);
printdeque(d1);
//头插
d1.push_front(100);
d1.push_front(200);
printdeque(d1);
//尾删
d1.pop_back();
d1.pop_back();
printdeque(d1);
//头删
d1.pop_front();
d1.pop_front();
printdeque(d1);
}
void test0402()
{
deque<int> d1;
d1.push_back(10);
d1.push_back(20);
d1.push_back(30);
d1.push_back(40);
printdeque(d1);
d1.insert(d1.begin(), 1000);
d1.insert(d1.begin(), 3 , 2000);
printdeque(d1);
//按照区间插入
deque<int> d2;
d2.insert(d2.begin(), d1.begin(), d1.end());//指定位置插入指定区别的数据
printdeque(d2);
d2.erase(d2.begin(), d2.end());//删除指定区间数据
printdeque(d2);
d1.erase(d1.begin());//删除指定位置数据
printdeque(d1);
d1.clear();//清空所有数据
printdeque(d1);
}
int main()
{
//test0401();
test0402();
system("pause");
return 0;
}
网友评论