📅  最后修改于: 2023-12-03 14:59:47.153000             🧑  作者: Mango
C++ STL中的双端队列(deque)是一种基于顺序容器的数据结构,它允许在两端进行插入/删除操作。在双端队列中,使用resize()函数可以改变队列的大小。
resize()函数有两种重载形式:
void resize(size_type count)
:将deque的大小改为count。如果count小于当前size(),则删除尾部元素,缩小容器大小为count;如果count大于当前size(),则在尾部插入count-size()个默认构造的元素,扩大容器大小为count。void resize(size_type count, const value_type& value)
:将deque的大小改为count,同时新增或删除元素,新增元素用value初始化。#include <iostream>
#include <deque>
using namespace std;
int main() {
deque<int> dq;
dq.push_back(1);
dq.push_back(2);
dq.push_back(3);
// 将deque的大小改为4,新增的元素用0初始化
dq.resize(4);
// 输出deque的元素
for (auto i : dq) {
cout << i << " ";
}
cout << endl;
// 将deque的大小改为2,删除了最后两个元素
dq.resize(2);
// 输出deque的元素
for (auto i : dq) {
cout << i << " ";
}
cout << endl;
// 将deque的大小改为5,新增的元素用4初始化
dq.resize(5, 4);
// 输出deque的元素
for (auto i : dq) {
cout << i << " ";
}
cout << endl;
return 0;
}
输出结果:
1 2 3 0
1 2
1 2 4 4 4
resize()函数是一种非常方便的函数,可以方便地改变deque的大小,同时新增或删除元素。需要注意的是,使用resize()函数可能会导致重新分配内存,因此需要谨慎使用,避免出现不必要的性能损失。