C++中resize()使用详解

大王算法 2024-08-08 15:35:03 阅读 92

目录

一、前言        

二、语法

2.1、count: 新的大小。

2.2、作用

 三、注意事项

四、代码示例


一、前言        

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

二、语法

<code>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};

vec.resize(5); // vec 变为 {1, 2, 3, 0, 0}

vec.resize(7, 9); // vec 变为 {1, 2, 3, 0, 0, 9, 9}

     减少 vector 的大小:

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

std::vector<int> vec = {1, 2, 3, 4, 5};

vec.resize(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 大小

vec.resize(5);

std::cout << "After resizing to 5: ";

for (int i : vec) {

std::cout << i << " ";

}

std::cout << std::endl;

// 使用指定值扩展 vector 大小

vec.resize(7, 9);

std::cout << "After resizing to 7 with 9: ";

for (int i : vec) {

std::cout << i << " ";

}

std::cout << std::endl;

// 缩小 vector 大小

vec.resize(3);

std::cout << "After resizing to 3: ";

for (int i : vec) {

std::cout << i << " ";

}

std::cout << std::endl;

return 0;

}

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



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。