C++中resize()如何使用
时间: 2023-12-01 13:04:59 浏览: 31
在C++中,std::vector类提供了resize()函数,用于调整向量的大小。该函数有以下两种形式:
1. resize(n):将向量的大小调整为n,如果n小于当前向量的大小,则删除多余的元素;如果n大于当前向量的大小,则在末尾添加默认元素。
2. resize(n, value):将向量的大小调整为n,如果n小于当前向量的大小,则删除多余的元素;如果n大于当前向量的大小,则在末尾添加值为value的元素。
例如,可以像下面这样使用resize()函数:
```
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
v.resize(3); // 调整大小为3,删除后面的元素
v.resize(5, 0); // 调整大小为5,添加值为0的元素
return 0;
}
```
在上述示例中,向量v的大小最初为5,然后使用resize(3)将其大小调整为3,删除后面的元素,最终v包含的元素为{1, 2, 3}。接着使用resize(5, 0)将其大小调整为5,添加值为0的元素,最终v包含的元素为{1, 2, 3, 0, 0}。
相关问题
c++中resize函数
C++中的`resize()`函数是用来改变容器的大小的,它可以增加或减少容器的元素数量。如果新的大小比原来的大小大,那么新的元素将被默认初始化;如果新的大小比原来的大小小,那么超出新大小的元素将被删除。
下面是一个使用`resize()`函数的例子:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> v{1, 2, 3, 4, 5};
std::cout << "Original size: " << v.size() << '\n';
v.resize(10);
std::cout << "New size: " << v.size() << '\n';
for (auto i : v) {
std::cout << i << ' ';
}
std::cout << '\n';
return 0;
}
```
输出:
```
Original size: 5
New size: 10
1 2 3 4 5 0 0 0 0 0
```
在这个例子中,我们首先创建了一个包含5个整数的`vector`,然后使用`resize()`函数将其大小改变为10。由于新的大小比原来的大小大,所以新元素将被默认初始化为0。
c++vector中resize
在C++的标准库中,可以使用`std::vector::resize`函数来改变`vector`的大小。`resize`函数接受一个整数参数,用于指定`vector`的新大小。
如果新大小小于当前的大小,那么`vector`将会缩小为指定的大小,并丢弃多余的元素。如果新大小大于当前的大小,那么`vector`将会增大到指定的大小,并在末尾插入新的元素。如果新大小等于当前的大小,则不会做任何改变。
下面是一个使用`resize`函数改变`vector`大小的示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
numbers.resize(3); // 缩小 vector 的大小为 3
std::cout << "缩小后的 vector 大小: " << numbers.size() << std::endl;
std::cout << "缩小后的 vector 内容: ";
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
numbers.resize(6); // 增大 vector 的大小为 6
std::cout << "增大后的 vector 大小: " << numbers.size() << std::endl;
std::cout << "增大后的 vector 内容: ";
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
```
运行上面的代码,输出将会是:
```
缩小后的 vector 大小: 3
缩小后的 vector 内容: 1 2 3
增大后的 vector 大小: 6
增大后的 vector 内容: 1 2 3 0 0 0
```
在缩小大小时,`resize`函数会删除多余的元素。在增大大小时,默认使用元素类型的默认构造函数创建新的元素,并将其插入到末尾。如果需要指定特定的默认值,可以提供第二个参数给`resize`函数。例如:`numbers.resize(6, 10);` 将会将新插入的元素设置为10。
希望这能解决你的问题!如有其他疑问,请随时提问。