vector resize
时间: 2023-07-08 21:52:12 浏览: 54
vector的resize函数可以改变vector的大小。如果新的大小比原来的大,那么新的元素将被默认初始化。如果新的大小比原来的小,那么超出新大小的元素将被销毁。
例如,下面的代码将vector的大小改变为10:
```
std::vector<int> v(5);
v.resize(10);
```
此时,v的大小将变为10,前5个元素的值不变,后面5个元素的值为0。如果再调用resize函数将大小改变为3,那么后面的7个元素将被销毁,v的大小将变为3。
相关问题
vector resize
vector resize()函数是用来改变向量大小的。它接受一个整数参数n,表示希望将向量调整为的大小。当n小于当前向量大小时,resize()会截断向量,只保留前n个元素。当n大于当前向量大小时,resize()会在向量的末尾插入默认构造的元素,将向量扩展到大小为n。如果向量大小已经等于n,则resize()不会做任何操作。下面是一个示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5};
std::cout << "Before resize: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
numbers.resize(3);
std::cout << "After resize to 3: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
numbers.resize(7);
std::cout << "After resize to 7: ";
for (const auto& num : numbers) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
Before resize: 1 2 3 4 5
After resize to 3: 1 2 3
After resize to 7: 1 2 3 0 0 0 0
```
在示例中,开始时向量的大小为5。首先,我们将其调整为3,向量被截断为前3个元素。然后,我们将其调整为7,向量在末尾插入4个默认构造的元素,将其扩展到7个元素的大小。
std vector resize
`std::vector` 是 C++ 标准库中的动态数组容器,它允许你在运行时动态调整大小。`resize()` 函数是 `std::vector` 的成员函数,用于改变向量的容量,即元素的数量。它可以接受两个参数:
1. 新的大小(size_t new_size):这是你希望向量包含的新元素数。如果新大小大于当前容量,会自动分配更多的内存;如果新大小小于当前容量,多余的空间会被删除。
2. [可选] 指定值 (optional):如果你提供了一个额外的参数,那么在调整大小时,向量的所有新元素将被这个值初始化。如果不提供,或者提供的值是 `std::initializer_list` 或者 `T&&` 类型(C++17以后),则使用默认构造函数初始化新元素。
示例代码如下:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
// 初始化一个空向量
vec.resize(5); // 向量现在有5个未初始化的元素
// 扩容并填充所有新元素为0
vec.resize(10, 0);
for (const auto& elem : vec) {
std::cout << elem << " "; // 输出0到9
}
std::cout << std::endl;
// 缩小并向新元素赋值为某个特定值
vec.resize(3, 42);
for (size_t i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " "; // 输出42, 42, 42
}
std::cout << std::endl;
return 0;
}
```
阅读全文