为什么使用 std::vector::reserve 很有用?

Tat*_*nan 3 c++ vector

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

小智 6

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

简单来说,就是效率。

  • 比效率更重要的是:它保证迭代器保持有效。 (3认同)