vector resize后pushback
时间: 2023-07-08 08:41:09 浏览: 157
Vector Resize Error(处理方案).md
当对 `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` 函数预先分配好足够的内存空间,避免频繁地重新分配内存。
阅读全文