STL list如何删除指定的元素

    技术2025-03-21  19

    在网上找资料的时候看到一种删除list中元素的方法,如下

    std::list<Subscriber*> subscribers_;

    subscribers_.erase(std::remove(subscribers_.begin(),subscribers_.end(), &subscriber),          subscribers_.end());

     

    其实对于list,完全可以用list::remove函数直接移除元素,效果是一样的。

    但是对于没有remove函数的STL容器来说,例如vector,就可以用该方法移除元素了。

    要注意的是std::remove方法并不删除在数组最后的元素,而是返回一个新的数组的结尾位置,所以还要调用erase方法删除新的结尾位置和旧的结尾位置之间的元素。

     

    最新回复(0)