删除vector中间元素的小技巧
由于vector是顺序容器,因此删除一个位于中间的元素会导致迭代器失效,影响效率。
对于保存在vector中的数据,如果数据本身对存储顺序没有要求,可以利用一个小技巧通过pop_back()来删除中间的元素。
代码如下:
for(size_t i = 0; i < vec.size(); ++i) { if(...) ///< 删除条件 { vec[i] = vec.back(); ///< vec[i]表示要删除的元素 vec.pop_back(); } }