Bailey先生从a previous question about vector capacity说:
因此,如果我理解正确,为了确保在超出容量之前不会发生重新分配,我是否必须预留两次?能否请您澄清一下?
我正在使用 vector 作为这样的内存堆栈:
std::vector<double> memory;
memory.reserve(size);
memory.insert(memory.end(), matrix.data().begin(), matrix.data().end()); // smaller than size
memory.resize(memory.capacity(), 0);
我需要保证上面没有发生重新分配。
谢谢。
ps:我也想知道,除了 vector 以外,是否还有更好的方法来以类似方式管理内存堆栈
最佳答案
我认为您看错了声明。允许保留将capacity
设置为比保留的更大的数量。特殊的语言是,如果您保留的存储量比上次(但尚未达到当前容量)多,则允许实现重新分配。
关于c++ - C++ std::vector内存/分配,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2761570/