在向量中使用 reserve() 的好处 - C

新手上路,请多包涵

在处理向量时使用储备有什么好处。我应该什么时候使用它们?无法找到明确的答案,但我认为在使用前提前预订会更快。

比我聪明的人怎么说?

原文由 Pladnius Brooks 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 372
1 个回答

如果您知道向量最终将包含多少个元素,这将很有用 - 它可以帮助向量避免重复分配内存(并且必须将数据移动到新内存)。

一般来说,这可能是您无需担心的潜在优化,但它也无害(在最坏的情况下,如果您高估,最终会浪费内存)。

当您希望确保现有迭代器不会因添加新元素而失效时,它可能不仅仅是优化的一个领域。

例如,一个 push_back() 调用可能会使向量的现有迭代器无效(如果发生重新分配)。但是,如果您保留了足够多的元素,则可以确保不会发生重新分配。这是一种不需要经常使用的技术。

原文由 Michael Burr 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏