C++中resize使用详解

时间:2025-03-29 07:24:06

目录

一、前言        

二、语法

2.1、count: 新的大小。

2.2、作用

 三、注意事项

四、代码示例


一、前言        

        在C++中,resize() 是一个常用的成员函数,主要用于调整 std::vector 容器的大小。std::vector 是一个动态数组,允许在运行时改变其大小。resize() 提供了一种简便的方法来增加或减少 vector 的元素数量。

二、语法

void resize(size_t count);
void resize(size_t count, const T& value);

2.1、count: 新的大小。

        value: 当需要扩展 vector 时,用于初始化新元素的值(仅适用于第二个重载版本)。

2.2、作用

        增加 vector 的大小:

        如果新的大小大于当前大小,则会增加 vector 的大小,并使用默认构造函数或指定的值初始化新的元素。

std::vector<int> vec = {1, 2, 3};
(5); // vec 变为 {1, 2, 3, 0, 0}
(7, 9); // vec 变为 {1, 2, 3, 0, 0, 9, 9}

     减少 vector 的大小:

        如果新的大小小于当前大小,则会移除多余的元素。

std::vector<int> vec = {1, 2, 3, 4, 5};
(3); // vec 变为 {1, 2, 3}

 三、注意事项

        resize() 只会改变 vector 的大小,不会改变其容量(capacity)。如果需要调整容量,可以使用 shrink_to_fit()。

        调整后的 vector 中新增的元素(如果有)将被默认初始化或使用提供的值进行初始化。

        调整大小时,可能会导致资源重新分配,因此在性能敏感的代码中应谨慎使用。

四、代码示例

#include <iostream>
#include <vector>

int main() {
    std::vector<int> vec = {1, 2, 3};
    
    // 扩展 vector 大小
    (5);
    std::cout << "After resizing to 5: ";
    for (int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    // 使用指定值扩展 vector 大小
    (7, 9);
    std::cout << "After resizing to 7 with 9: ";
    for (int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    // 缩小 vector 大小
    (3);
    std::cout << "After resizing to 3: ";
    for (int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    return 0;
}

         通过 resize() 函数,我们可以灵活地管理 vector 的大小,满足不同的需求。