c++ remove_if如何处理复杂条件

   2024-10-05 4180
核心提示:在C++中,可以使用lambda表达式作为remove_if函数的第三个参数来处理复杂条件。例如,如果要删除一个vector中所有大于10且为偶数

在C++中,可以使用lambda表达式作为remove_if函数的第三个参数来处理复杂条件。

例如,如果要删除一个vector中所有大于10且为偶数的元素,可以这样写:

#include <iostream>#include <vector>#include <algorithm>int main() {    std::vector<int> vec = {1, 5, 10, 15, 20, 25, 30};    vec.erase(std::remove_if(vec.begin(), vec.end(), [](int i) {        return i > 10 && i % 2 == 0;    }), vec.end());    for (auto& i : vec) {        std::cout << i << " ";    }    return 0;}

在这个例子中,lambda表达式[](int i) { return i > 10 && i % 2 == 0; }定义了一个复杂的条件,用于判断元素是否大于10且为偶数。remove_if函数将遍历vector中的所有元素,调用lambda表达式对每个元素进行判断,如果返回true,则该元素将被移动到vector的末尾,最后erase函数将这些元素从vector中删除。

因此,通过使用lambda表达式作为remove_if的第三个参数,可以比较方便地处理复杂的条件。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号