删除vector中间元素的小技巧

由于vector是顺序容器,因此删除一个位于中间的元素会导致迭代器失效,影响效率。

对于保存在vector中的数据,如果数据本身对存储顺序没有要求,可以利用一个小技巧通过pop_back()来删除中间的元素。

代码如下:

    for(size_t i = 0; i < vec.size(); ++i)
    {
        if(...)              ///< 删除条件
        {
            vec[i] = vec.back();    ///< vec[i]表示要删除的元素
            vec.pop_back();
        }
    }
posted @ 2012-11-22 01:57  酒瓶囧  阅读(598)  评论(0编辑  收藏  举报