vector resize后pushback
时间: 2023-07-08 21:41:09 浏览: 216
当对 `vector` 进行 `resize` 操作后,可以通过 `push_back` 函数向 `vector` 的末尾添加元素。如果添加的元素数量超过了 `vector` 的新大小,那么会触发重新分配内存的操作。
例如,假设有一个存储整数的 `vector v`,要将其大小调整为 `10`,多余的新空间用 `0` 来填充,并添加 `3` 个元素 `1, 2, 3`,可以这样写:
```
v.resize(10, 0); // 将 v 大小调整为 10,并用 0 填充多余的空间
v.push_back(1); // 在 v 的末尾添加元素 1
v.push_back(2); // 在 v 的末尾添加元素 2
v.push_back(3); // 在 v 的末尾添加元素 3
```
这样,`vector v` 的元素为 `0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3`。
需要注意的是,当添加元素时,如果 `vector` 的大小不够用,会触发重新分配内存的操作,这个操作可能会导致迭代器和指针失效。所以,如果需要在 `vector` 中添加大量元素,最好先调用 `reserve` 函数预先分配好足够的内存空间,避免频繁地重新分配内存。
相关问题
vector resize
`vector` 的 `resize` 函数用于改变容器的大小,它有两种形式:
```cpp
void resize(size_type count);
void resize(size_type count, const value_type& value);
```
第一种形式将容器的大小改为 `count`,如果 `count` 大于当前容器的大小,则会在末尾添加默认值构造的元素,否则会删除末尾多余的元素。例如,将一个大小为 5 的 `vector<int>` 执行 `v.resize(3)` 后,它的大小将变为 3,其中元素 3、4 将被删除。
第二种形式将容器的大小改为 `count`,并用 `value` 初始化新增的元素。例如,将一个大小为 3 的 `vector<int>` 执行 `v.resize(5, 0)` 后,它的大小将变为 5,其中新增的元素将被初始化为 0。
需要注意的是,改变容器大小可能会导致迭代器失效,因此在使用迭代器时应特别小心。
c++ vector resize
vector的resize函数用于改变向量的大小。它接受一个参数,表示向量的新大小。如果新大小比原来的大小小,那么多出来的元素将被删除。如果新大小比原来的大小大,那么多出来的元素将以默认值填充。
下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
// 改变向量的大小为10,并用0填充多出来的元素
vec.resize(10);
for (int i : vec) {
std::cout << i << " ";
}
return 0;
}
```
输出结果为:1 2 3 4 5 0 0 0 0 0
阅读全文
相关推荐













