我不明白为什么要减小std::vector::swap()的大小时必须使用vector释放内存。为什么有人要减小vector的大小,同时又保留剩余的未使用内存分配? 最佳答案 减少 vector 的容量涉及分配新存储复制现有元素取消分配旧存储这些都不是免费的。真正缩小 vector 会带来相关的成本,并且不清楚用户是否应默认付款。