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
的大小,满足不同的需求。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。