https://stackoverflow.com/questions/2663170/stdvector- Capacity- subsequently-copying”a Bailey先生先前关于病媒能力的问题:
在目前的C++中,保证在要求保留后不发生重新定位,直到插入时,其规模将超出先前呼吁的储备价值。 在呼吁保留之前,或在呼吁保留时,如果规模是先前呼吁保留的价值与执行能力之间,则允许在作出选择时尽早重新分配。
因此,如果我正确理解,为了保证在能力超过之前不会发生重新分配,我必须两次保留? 请澄清这一点吗?
我将病媒作为记忆套:
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);
我需要保证,在上述情况下不会发生重新分配。
谢谢。
p:我也想知道,除了病媒之外,是否有更好的办法管理记忆袋。