携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第26天,点击查看活动详情
1.deque大小操作概述
功能描述:
- 对deque容器的大小进行操作
函数原型:
-
deque.empty();//判断容器是否为空 -
deque.size();//返回容器中元素的个数 -
deque.resize(num);//重新指定容器的长度为num,若容器变长,则以默认值填充新位置。 //如果容器变短,则末尾超出容器长度的元素被删除。
-
deque.resize(num, elem);//重新指定容器的长度为num,若容器变长,则以elem值填充新位置。 //如果容器变短,则末尾超出容器长度的元素被删除。
2.代码举例说明
#include <deque>
void printDeque(const deque<int>& h)
{
for (deque<int>::const_iterator it = h.begin(); it != h.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
//大小操作
void test01()
{
deque<int> h01;
for (int i = 0; i < 10; i++)
{
h01.push_back(i);
}
printDeque(h01);
//判断容器是否为空
if (h01.empty()) {
cout << "h01为空!" << endl;
}
else {
cout << "h01不为空!" << endl;
//统计大小
cout << "h01的大小为:" << h01.size() << endl;
}
//重新指定大小
h01.resize(15, 1);
printDeque(h01);
h01.resize(5);
printDeque(h01);
}
int main() {
test01();
system("pause");
return 0;
}
结论:
- deque没有容量的概念
- 判断是否为空 --- empty
- 返回元素个数 --- size
- 重新指定个数 --- resize
3. deque 插入和删除概述
功能描述:
- 向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,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。 -
clear();//清空容器的所有数据 -
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。 -
erase(pos);//删除pos位置的数据,返回下一个数据的位置。
4.代码举例说明
#include <deque>
void printDeque(const deque<int>& h)
{
for (deque<int>::const_iterator it = h.begin(); it != h.end(); it++) {
cout << *it << " ";
}
cout << endl;
}
//两端操作
void H01()
{
deque<int> h;
//尾插
h.push_back(10);
h.push_back(20);
//头插
h.push_front(100);
h.push_front(200);
printDeque(h);
//尾删
h.pop_back();
//头删
h.pop_front();
printDeque(h);
}
//插入
void H02()
{
deque<int> h;
h.push_back(10);
h.push_back(20);
h.push_front(100);
h.push_front(200);
printDeque(h);
h.insert(h.begin(), 1000);
printDeque(h);
h.insert(h.begin(), 2,10000);
printDeque(h);
deque<int>h02;
h02.push_back(1);
h02.push_back(2);
h02.push_back(3);
h.insert(h.begin(), h02.begin(),h02.end());
printDeque(h);
}
//删除
void H03()
{
deque<int> h;
h.push_back(10);
h.push_back(20);
h.push_front(100);
h.push_front(200);
printDeque(h);
h.erase(h.begin());
printDeque(h);
h.erase(h.begin(), h.end());
h.clear();
printDeque(h);
}
int main() {
//H01();
//H02();
H03();
system("pause");
return 0;
}
结论:
- 插入和删除提供的位置是迭代器!
- 尾插 --- push_back
- 尾删 --- pop_back
- 头插 --- push_front
- 头删 --- pop_front