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