📜  在C++ STL中列出resize()函数(1)

📅  最后修改于: 2023-12-03 15:07:52.288000             🧑  作者: Mango

在C++ STL中列出resize()函数

resize()是C++标准模板库(STL)中vector容器的一个成员函数,它用于改变容器的长度。

函数声明
void resize (size_type n);
void resize (size_type n, value_type val); 
参数

函数接受两个参数:

  • n : 要将容器的大小更改为的新大小。
  • 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() 是一个非常有用的函数,可以通过它从一个初始大小的容器构建出所需大小的容器,然后再将其用于程序中的其他操作。