C++实用函数:remove_if
上篇文章,介绍了C++中find_if的使用,用于在vector在按照自定义的匹配规则查找第一个匹配的数据。
本篇,来介绍另一个类似的函数,remove_if,它用于在vector在按照自定义的匹配规则查找到所有的匹配的数据,并将它们移动末尾。
1 remove_if简介
template< class ForwardIt, class UnaryPredicate >
ForwardIt remove_if( ForwardIt first, ForwardIt last, UnaryPredicate p );
参数:
ForwardIt
:这是一个模板类型参数,代表前向迭代器(Forward Iterator)。first
:指向要处理的元素范围起始位置的前向迭代器。last
:指向要处理的元素范围末尾位置(不包含该位置元素)的前向迭代器。p
:一个一元谓词(Unary Predicate),可以是函数指针、函数对象或者 Lambda 表达式。
返回值:返回一个指向新的逻辑末尾的前向迭代器。新的逻辑末尾是指经过 remove_if
操作后,所有不满足谓词条件的元素之后的位置。