在处理 vector 时使用保留有什么好处。我应该什么时候使用它们?无法找到明确的答案,但我认为在使用前提前预订会更快。
你们说什么比我聪明?
最佳答案
如果您知道 vector 最终将包含多少个元素,这将非常有用 - 它可以帮助 vector 避免重复分配内存(并且必须将数据移动到新内存)。
一般来说,这可能是您无需担心的潜在优化,但它也无害(如果您高估,最坏的情况是您最终会浪费内存)。
当您希望确保现有迭代器不会因添加新元素而失效时,它可能不仅仅是一种优化。
例如,push_back()
调用可能会使 vector 的现有迭代器无效(如果发生重新分配)。但是,如果您保留了足够多的元素,则可以确保不会发生重新分配。这是一种不需要经常使用的技术。
关于c++ - 在 vector 中使用 reserve() 的好处 - C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6525650/