c++ - 为什么使用 std::vector::reserve 有用?

标签 c++ vector

<分区>

在 C++ 中,您可以仅使用 push_back 方法将元素添加到 vector 中。此方法修改 vector 的大小。 那么使用 std::vector::reserve 的目标是什么?我应该什么时候使用它?

最佳答案

当您知道至少有 n 个元素进入 vector 时,您可以使用保留。调整容器大小是一项代价高昂的操作——您分配新内存,将旧内容复制到其中,然后删除旧 vector 。如果您知道默认情况下您将获得至少 10000 个元素,最好为 vector 保留大小,而不是让 vector 重新分配内存的次数超过必要次数。

简单来说,就是效率。

关于c++ - 为什么使用 std::vector::reserve 有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23781550/

相关文章:

c++ - 初始化值为 std::vector 的 std::map 的最佳方法是什么?

c++ - QT/QML c++ 程序在从 QML 访问 QList 时崩溃

以模板类为参数的C++模板函数

c++ - 如何在vector<vector<float>*>*中写入数据?

r - 排序向量的有限距离内最远的元素

c++如何获取具有结构类型的 vector 的大小

c++ - 如何在不从输入 C++ 复制的情况下引用最长的 vector ?

c++ - 在 C++ 中写入二进制文件时出错

c++ - QT:无法从另一个线程启用套接字通知程序

arrays - 根据其内容将向量拆分为多个向量