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