标题 C++ deque(队列) 容器
一、deque的构造函数
1、c.push_back(k),在c的尾部创建一个值为t或由args创建的元素。返回void
2、c.push_front(t),在c的头部创建一个值为t或由args创建的元素.返回void
deque<int> d;
d.push_back(10);
d.push_back(20);
d.push_back(30);
d.push_back(40);
printDeque(d);
输出:
10 20 30 40
请按任意键继续. . .
二、swap交换
1、swap(c1,c2)
2、c1.swap(c2)
上诉两个都是交换c1和c2中的元素。c1和c2必须具有相同的类型。swap通常比c2向c1拷贝元素快得多
deque<int> d;
d.push_back(10);
d.push_back(20);
d.push_back(30);
d.push_back(40);
deque<int> d2(10, 1);
printDeque(d2);
d2.swap(d);
printDeque(d2);
输出:
1 1 1 1 1 1 1 1 1 1
10 20 30 40
请按任意键继续. . .
三、deque大小操作
1、成员函数size返回容器中元素的数目;
2、empty当size为0是返回布尔值true,否则返回false;
3、max_size返回一个大于或等于该类型容器所能容纳的最大元素数的值
4、d.resize(20,0)重新指定元素的长度,以第二个元素填充
deque<int> d = {10,20,30,40,50,60};
printDeque(d);
cout << "d中元素个数为:" << d.size() << endl;
if (!d.empty())
{
cout << "d的容器不为空" << endl;
}
else
{
cout << "d的容器为空" << endl;
}
d.resize(20, 0);
printDeque(d);
输出:
10 20 30 40 50 60
d中元素个数为:6
d的容器不为空
10 20 30 40 50 60 0 0 0 0 0 0 0 0 0 0 0 0 0 0
请按任意键继续. . .
四、deque双端插入和删除操作
1、d.push_back(t);向容器尾部插入一个数据
2、d.push_front(t);向容器头部插入一个数据
3、d.pop_back();//删除容器最后一个数据
4、d.pop_front();//删除容器第一个数据
deque<int> d = { 10,20,30,40,50,60 };
cout << "d中的原始元素为:";
printDeque(d);
d.push_back(25);
d.push_front(20);
cout << "插入操作后的d中的元素为:";
printDeque(d);
d.pop_back();
d.pop_front();
cout << "删除操作后的d中的元素为:";
printDeque(d);
输出:
d中的原始元素为:10 20 30 40 50 60
插入操作后的d中的元素为:20 10 20 30 40 50 60 25
删除操作后的d中的元素为:10 20 30 40 50 60
请按任意键继续. . .
五、deque插入操作和删除操作
1、d.insert(++d.begin(), 4);//在第一个参数位置插入第二个参数,第一个参数为迭代器
2、d.erase§;删除迭代器p所指定的元素,返回一个指向被删除元素之后元素的迭代器,若p指向尾元素,则返回尾后迭代器。若p是尾后迭代器,则函数行为未定义
deque<int> d = { 10,20,30,40,50,60 };
printDeque(d);
d.insert(++d.begin(), 4);
cout << "插入之后的d容器的元素为:";
printDeque(d);
d.erase(++d.begin());
cout << "删除后的操作为:";
printDeque(d);
输出:
10 20 30 40 50 60
插入之后的d容器的元素为:10 4 20 30 40 50 60
删除后的操作为:10 20 30 40 50 60
请按任意键继续. . .