#include "iostream"
#include "deque"
using namespace std;
/**
* 打印元素
* @param d1 限制只读
*/
void printDeque(const deque<int> &d1) {
for (deque<int>::const_iterator iterator = d1.begin(); iterator != d1.end(); iterator++) {
cout << *iterator << " ";
}
cout << endl;
}
void test01() {
deque<int> d1;
//尾插
d1.push_back(10);
d1.push_back(20);
printDeque(d1);//10 20
//头插
d1.push_front(100);
d1.push_front(200);
printDeque(d1);//200 100 10 20
//尾删
d1.pop_back();
printDeque(d1);//200 100 10
//头删
d1.pop_front();
printDeque(d1);//100 10
}
void test02() {
deque<int> d1;
//尾插
d1.push_back(10);
d1.push_back(20);
//头插
d1.push_front(100);
d1.push_front(200);
printDeque(d1);//200 100 10 20
//insert插入
d1.insert(d1.begin(), 1000);//在第一个元素的位置插入1000
printDeque(d1);//1000 200 100 10 20
d1.insert(d1.begin(), 2, 999);//在第一个元素的位置插入两个999
printDeque(d1);//999 999 1000 200 100 10 20
deque<int> d2;
d2.push_back(1);
d2.push_back(2);
d2.push_back(3);
//按照区间进行插入(insert重载)
d1.insert(d1.begin(), d2.begin(), d2.end());//在d1的第一个元素的位置插入d2的begin(包括)-end(不包括)区间的元素
printDeque(d1);//1 2 3 999 999 1000 200 100 10 20
//删除
deque<int>::iterator it = d1.begin();//获取迭代器
it++;//迭代器偏移 0+1= 1
d1.erase(it);//删除
printDeque(d1);//1 3 999 999 1000 200 100 10 20
//按照区间的方式删除(erase重载),删除区间的内容
deque<int>::iterator it2 = d1.begin();//获取迭代器
it2 = it2 + 2;
d1.erase(d1.begin(), it2);//删除迭代器begin(包括)-it2(不包括)区间的元素
printDeque(d1);//999 999 1000 200 100 10 20
//清空
d1.clear();
printDeque(d1);
}
int main() {
// test01();
// test02();
return 0;
}
C++中dque插入与删除
最新推荐文章于 2024-06-16 14:52:03 发布