我有一个1000"节点"的矢量
if(count + 1 > m_listItems.capacity()) m_listItems.reserve(count + 100);
问题是,当我要重新填充它时,我也清楚了.
m_listItems.clear();
容量不会改变.我用过调整大小(1); 但这似乎并没有改变容量.那么如何改变储备呢?
vector- (m_listItems).swap(m_listItems);
将m_listItems
再次缩小:http://www.gotw.ca/gotw/054.htm(Herb Sutter)
如果你想要清除它,用空向量交换:
vector- ().swap(m_listItems);
这当然更有效率.(请注意,交换向量基本上意味着只交换两个指针.没有什么真正耗费时间)