vector resize
时间: 2024-01-29 20:10:36 浏览: 36
`vector`的`resize`操作是用于改变`vector`的大小。当我们需要增加或减少`vector`中的元素数量时,可以使用`resize`操作。`resize`会改变`vector`的大小,并且如果需要的话,它会分配或释放内存。
以下是一个使用`resize`操作改变`vector`大小的示例:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec;
vec.resize(100); // 改变vector的大小为100
std::cout << "Vector size: " << vec.size() << std::endl; // 输出:Vector size: 100
return 0;
}
```
在上面的示例中,我们首先创建了一个空的`vector`对象`vec`。然后,我们使用`resize`操作将`vector`的大小改变为100。最后,我们使用`size`函数获取`vector`的大小并输出。
相关问题
c vector resize
vector resize 和 reserve 是 STL 中 vector 的两个常用函数。
resize 函数是用来改变 vector 的大小的,如果新的大小大于原来的大小,那么会在 vector 后面增加一些元素,而这些新增的元素的值是未定义的。
reserve 函数是用来预留 vector 的容量的,如果 reserve 的参数大于 vector 的当前容量,那么 vector 的容量会增加到参数值,但是 vector 的大小并不会发生改变。
两个函数有什么区别? resize 会改变 vector 的大小,而 reserve 只是预留容量,不改变 vector 的大小。
vector resize方法
vector的resize方法是用来改变vector的大小的。如果参数的数值比vector的当前大小大,那么vector会用0来填充新增的元素;如果参数的数值比vector的当前大小小,那么在设置的大小和当前大小之间的元素会被删除。比较两个vector是否相等时,会比较它们的大小和对应位置上的元素是否相等。
具体来说,resize方法有两个参数:_Newsize和_Val。_Newsize用来设置vector的新大小,_Val是可选的,用来为新增的元素赋值。注意,resize方法并不会改变之前数组的值,只会改变数组的长度和新增元素的值。
下面是一个示例代码,展示了resize方法的使用:
```cpp
#include <iostream>
#include <vector>
using namespace std;
struct squareXY {
int x;
int y;
};
int main() {
squareXY rexy = {1, 2};
squareXY xy = {3, 4};
vector<squareXY> s(10, xy);
cout << "resize之前的数组:" << endl;
for (int i = 0; i < s.size(); i++) {
cout << s[i].x << "------" << s[i].y << endl;
}
s.resize(20, rexy);
cout << "resize之后的数组:" << endl;
for (int i = 0; i < s.size(); i++) {
cout << i << ":" << s[i].x << "------" << s[i].y << endl;
}
return 0;
}
```
运行以上代码,可以看到resize方法改变了vector的大小,并根据需要进行元素的填充或删除。