std::remove_if 介绍

remove_if  可以这样理解

前两个参数:

  给他一个迭代的起始位置和这个起始位置所对应的停止位置。  例如下方函数中的  str.begin(),  str.end()

最后一个参数:

  传入一个回调函数,如果 回调函数函数返回真,则将当前所指向的参数,移到尾部(不稳定的数据移动)例如 下方的 Lambda 表达式  如果  n == find_str 这条命题为真则执行操作。

返回值:

  被移动区域的首个元素 iterator

头文件 

#include <algorithm>

这个函数不负责删除工作。所以他一般与 erase 成对出现


	std::vector<std::string> str = { "Name", "1", "2", "3 ", "4", "5", "6", "7", "Name"};
	auto find_str = "Name";
#if 1
	auto sd = std::remove_if(str.begin(), str.end(), [find_str](std::string n) { return n == find_str; });
	str.erase(sd, str.end());
#else
	str.erase(std::remove_if(str.begin(), str.end(), 
		[find_str](std::string n) { return n == find_str; }),
		str.end());
#endif


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值