通常,我呼吁reserve在std::vector构建后立即.这通常不会导致std::vector现有的堆分配被销毁并被替换为新的堆分配吗?有没有办法在构建时保留内存而不是分配堆空间然后立即销毁它?或者是否有一个实施技巧,std::vector以确保这不是一个问题?
可用的构造函数似乎只能用于填充std::vectorwith值,而不是显式保留空间.
Lig*_*ica 14
您的问题基于一个错误的前提,即默认构造std::vector<T>将执行[零长度]分配.
实际上没有理由这样做.一个新的向量应该具有零容量(虽然这是理智所要求的,而不是标准所要求的).
因此,您的目标已经天生就满足了.
说实话,标准库并不是那么愚蠢.