首页主机资讯c++ remove_if与erase结合正确吗

c++ remove_if与erase结合正确吗

时间2024-07-26 19:34:03发布访客分类主机资讯浏览838
导读:在C++中,remove_if和erase通常结合使用来删除容器中满足特定条件的元素。remove_if函数用于移动满足条件的元素到容器末尾并返回一个迭代器,然后可以使用erase函数删除这些元素。 例如,可以这样使用remove_if和e...

在C++中,remove_if和erase通常结合使用来删除容器中满足特定条件的元素。remove_if函数用于移动满足条件的元素到容器末尾并返回一个迭代器,然后可以使用erase函数删除这些元素。

例如,可以这样使用remove_if和erase来删除vector中的偶数元素:

#include <
    iostream>
    
#include <
    vector>
    
#include <
    algorithm>


int main() {
    
    std::vector<
    int>
 vec = {
1, 2, 3, 4, 5, 6, 7, 8, 9}
    ;


    auto it = std::remove_if(vec.begin(), vec.end(), [](int num) {
    
        return num % 2 == 0;

    }
    );
    

    vec.erase(it, vec.end());


    for (int num : vec) {
    
        std::cout <
    <
     num <
    <
     " ";

    }
    

    return 0;

}
    

上面的代码首先使用remove_if函数将偶数元素移动到vector的末尾,然后使用erase函数删除这些元素。最后输出剩余的奇数元素。

需要注意的是,remove_if只是将满足条件的元素移动到容器末尾,并没有真正删除元素,所以需要结合erase来实际删除这些元素。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: c++ remove_if与erase结合正确吗
本文地址: https://pptw.com/jishu/690535.html
c++ remove_if怎样使用 c++ get set在UI编程中的应用

游客 回复需填写必要信息