gpt4 book ai didi

c++ - remove_if 字符串匹配集合中的给定字符串

转载 作者:搜寻专家 更新时间:2023-10-31 00:18:15 25 4
gpt4 key购买 nike

我正在考虑在下面的伪代码中对字符串 vector 使用 remove_if:

for(some strings in a given set) {
remove_if(myvec.begin(), myvec.end(), string_matches_current_string);
}

现在,我知道我可以定义谓词并轻松完成这项工作。但是我想知道是否有一个标准的模板函数可以用来代替上面的谓词来完成这项工作。我环顾四周,找不到一个。通过示例欣赏任何想法。谢谢!

最佳答案

如果您已经知道要删除的值,为什么要使用 std::remove_if?使用 std::remove,删除提供范围内与给定值匹配的项目:

std::vector<std::string>::iterator new_end = my_vec.end();
for(const auto &current_set_string : some_set)
new_end = std::remove(myvec.begin(), new_end, current_set_string);
my_vec.erase(new_end, my_vec.end()); // effectively remove them from the vector.

请注意,我使用基于范围的 for 循环只是为了缩短这段时间,但如果您不能使用 C++11,则应使用常规循环。

关于c++ - remove_if 字符串匹配集合中的给定字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11130243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com