标准的 STL vector 容器有一个“reserve”函数来保留未初始化的内存,以后可以使用它来防止重新分配。
另一个deque容器怎么没有?
最佳答案
增加 std::vector
的大小可能代价高昂。当 vector
超出其预留空间时,必须将 vector 的全部内容复制(或移动)到更大的预留空间。
正是因为 std::vector 调整大小可能代价高昂,所以 vector::reserve()
存在。 reserve()
可以准备一个 std::vector
以预期在不超过其容量的情况下达到一定的大小。
相反,deque
总是可以添加更多内存 无需重新定位现有元素。如果 std::deque
可以 reserve()
内存,则几乎没有明显的好处。
关于c++ - 双端队列 - 为什么 "reserve"不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15524475/