<分区>
Possible Duplicate:
How to downsize std::vector?
根据 cppreference,在 std::vector::reserve(size_t n) 中,n 是“作为已分配存储容量所需的最小数量”。我的问题是:如何避免只知道最大值的任何重新分配?
举个例子,假设我有一个整数列表,但我不知道这个列表的大小(例如这个列表来自于一个文件的读取)。但我知道这个列表的最大大小是 1000。假设列表的实际大小是 800。
目前,我使用 std::reserve(1000),然后是一个 push_back() 循环。使用 reserve 我可以防止任何重新分配。但是如何释放 push_backs 末尾的额外空间呢? (以例子为例,如何释放1000-800=200的额外空间?)
非常感谢。