在处理向量时使用储备有什么好处。我应该什么时候使用它们?无法找到明确的答案,但我认为在使用前提前预订会更快。
比我聪明的人怎么说?
原文由 Pladnius Brooks 发布,翻译遵循 CC BY-SA 4.0 许可协议
在处理向量时使用储备有什么好处。我应该什么时候使用它们?无法找到明确的答案,但我认为在使用前提前预订会更快。
比我聪明的人怎么说?
原文由 Pladnius Brooks 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.1k 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
4 回答796 阅读
1 回答873 阅读
1 回答902 阅读
1 回答672 阅读
1 回答779 阅读
如果您知道向量最终将包含多少个元素,这将很有用 - 它可以帮助向量避免重复分配内存(并且必须将数据移动到新内存)。
一般来说,这可能是您无需担心的潜在优化,但它也无害(在最坏的情况下,如果您高估,最终会浪费内存)。
当您希望确保现有迭代器不会因添加新元素而失效时,它可能不仅仅是优化的一个领域。
例如,一个
push_back()
调用可能会使向量的现有迭代器无效(如果发生重新分配)。但是,如果您保留了足够多的元素,则可以确保不会发生重新分配。这是一种不需要经常使用的技术。