📜  vector:C++ STL中的resize()(1)

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

vector:C++ STL中的resize()

在C++ STL中,vector是一个非常常用的容器,它可以动态的调整自己的大小,而resize()函数就是用来改变vector大小的。

语法
void resize(size_type n);
void resize(size_type n, const value_type& val);
参数
  • n:需要改变vector的大小,以元素数量为单位。
  • val:当添加元素时用来填充的值。
功能

resize()函数的主要作用就是改变vector的大小,同时可以添加元素到vector的末尾。

  • 如果新的大小n小于vector的当前大小,则vector的后面的元素将被删除。
  • 如果新的大小n大于vector的当前大小,则vector的后面将添加新的元素,并用val来填充多出来的空间。
代码示例
#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec1 = {0, 1, 2, 3, 4, 5};  // vector初始化为{0,1,2,3,4,5}
    vec1.resize(7);  // vector大小变为7,多出来的2个项被赋值为0
    std::cout << "vec1: ";
    for (const auto& i : vec1) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::vector<int> vec2 = {0, 1, 2, 3, 4, 5};
    vec2.resize(9, 10);  // vector大小变为9,多出来的2个项被赋值为10
    std::cout << "vec2: ";
    for (const auto& i : vec2) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::vector<int> vec3 = {0, 1, 2, 3, 4, 5};
    vec3.resize(3);  // vector大小变为3,后面的3个项被删除
    std::cout << "vec3: ";
    for (const auto& i : vec3) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

代码输出:

vec1: 0 1 2 3 4 5 0
vec2: 0 1 2 3 4 5 10 10 10
vec3: 0 1 2
总结

resize()函数是vector中非常重要的一个函数,它可以用来改变vector的大小,同时也可以添加元素到vector的末尾。这个函数的使用非常灵活,可以根据自己的需要来调整vector的大小,并用不同的值来填充新添加的元素。