C++ STL 中 remove 和 erase 的区别
1个回答
展开全部
vector中的remove的作用是将等于value的元素放到vector的尾部,但并不减少vector的size
vector中erase的作用是删除掉某个位置position或一段区域(begin, end)中的元素,减少其size
list容器中的remove 成员函数,原型是void remove (const value_type& val);
他的作用是删除list中值与val相同的节点,释放该节点的资源。
而list容器中的erase成员函数,原型是iterator erase (iterator position);
作用是删除position位置的节点。这也是与remove不同的地方。
考虑到list::erase是与位置有关,故erase还存在API: iterator erase (iterator first, iterator last);
对于set来说,只有erase API,没有remove API。 erase 的作用是把符合要求的元素都删掉。
vector中erase的作用是删除掉某个位置position或一段区域(begin, end)中的元素,减少其size
list容器中的remove 成员函数,原型是void remove (const value_type& val);
他的作用是删除list中值与val相同的节点,释放该节点的资源。
而list容器中的erase成员函数,原型是iterator erase (iterator position);
作用是删除position位置的节点。这也是与remove不同的地方。
考虑到list::erase是与位置有关,故erase还存在API: iterator erase (iterator first, iterator last);
对于set来说,只有erase API,没有remove API。 erase 的作用是把符合要求的元素都删掉。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询