📅  最后修改于: 2023-12-03 15:07:52.288000             🧑  作者: Mango
resize()
是C++标准模板库(STL)中vector容器的一个成员函数,它用于改变容器的长度。
void resize (size_type n);
void resize (size_type n, value_type val);
函数接受两个参数:
void
,不返回任何值。
resize(n)
函数将容器的大小改变为 n
,如果 n
大于当前容器的大小,则添加 n - size()
个默认构造的元素到容器的末尾。如果 n
小于当前容器的大小,则删除后面的元素直到 size()
等于 n
。
resize(n, val)
函数会将容器的大小更改为 n
,并且增加(需要的话)新元素,值均为 val
。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> myvec(3, 100); // myvec contains 3 elements with value 100
myvec.resize(5); // resize to contain 5 elements
myvec.resize(7, 200); // resize to contain 7 elements with value 200
cout << "myvec contains:";
for (auto i : myvec) {
cout << ' ' << i;
}
cout << '\n';
return 0;
}
上面的程序定义了一个初始大小为3的 vector
,其中包含了3个值为100的元素。然后使用 myvec.resize(5)
将其大小更改为5。由于当前大小(即3)小于请求的大小(即5),因此向容器中添加了2个默认值元素。接着使用 myvec.resize(7, 200)
将其大小再次更改为7。此次,容器中添加的2个元素初始化为200,因为第二个参数是200。
输出:
myvec contains: 100 100 100 0 0 200 200
在代码示例中,.size()
函数用于返回 vector
的大小,并且 auto
关键字的使用可以帮助我们遍历 vector
中的元素。
总之,resize()
是一个非常有用的函数,可以通过它从一个初始大小的容器构建出所需大小的容器,然后再将其用于程序中的其他操作。