您的位置:首页 > 编程语言 > Go语言

vector删除元素erase和通用算法remove

2010-03-23 11:11 281 查看
vector::erase()和algorithm中的remove函数都可以用来删除vector中的元素。

但是其中也有些区别。

erase函数的定义,通过迭代器来删除单个或者范围的元素
iterator erase(
   iterator _Where
);
iterator erase(
   iterator _First,
   iterator _Last
);

remove函数的定义

template<class _FwdIt, class _Ty> inline
_FwdIt remove(_FwdIt _First, _FwdIt _Last, const _Ty% _Val);
与erase不同的是,remove函数删除元素后并不会改变vector的大小,只是把后面的元素往前移,并返回一个指向vector末尾的新迭代器。
这样,如果用remove后,还用vector的begin和end仍旧会得到原来序列的大小范围的。
MARK:使用erase和remove函数都要注意删除元素时必须注意是否需要释放内存。如果vector存放的是指向动态创建对象的指针,那么
必须确保指向的对象能够释放。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐