std::remove_if即可删除指定位置符合条件的元素,我们只需要使用Lambda比较名称满足条件即可完成对list删除指定名称的元素:
我们填充三组abcd,删除a元素:
std::list<std::string> slist = {"a", "b", "c", "d", "a", "b", "c", "d", "a", "b", "c", "d" };
std::cout << "list remove beofre:" << std::endl;
for each (auto& var in slist)
std::cout << var << " ";
std::remove_if(slist.begin(), slist.end(), [slist](const std::string& str)
{
return str == "a";
});
std::cout << "\nlist remove after:" << std::endl;
for each (auto& var in slist)
std::cout << var << " ";
输出结果: