首页主机资讯c++ remove_if能操作自定义类型吗

c++ remove_if能操作自定义类型吗

时间2024-07-26 19:18:03发布访客分类主机资讯浏览449
导读:是的,C++的remove_if函数可以操作自定义类型。要使用remove_if函数操作自定义类型,需要提供一个谓词函数(Predicate Function),用于定义何时应该移除元素。该谓词函数可以根据自定义类型的特定属性或条件来判断是...

是的,C++的remove_if函数可以操作自定义类型。要使用remove_if函数操作自定义类型,需要提供一个谓词函数(Predicate Function),用于定义何时应该移除元素。该谓词函数可以根据自定义类型的特定属性或条件来判断是否应该移除该元素。

以下是一个示例,演示如何使用remove_if函数移除自定义类型Person的元素:

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


struct Person {
    
    std::string name;
    
    int age;

}
    ;
    

bool isAdult(const Person&
 person) {
    
    return person.age >
    = 18;

}


int main() {
    
    std::vector<
    Person>
 people = {
 {
"Alice", 25}
, {
"Bob", 17}
, {
"Charlie", 30}
 }
    ;
    

    // 移除未成年人
    people.erase(std::remove_if(people.begin(), people.end(), isAdult), people.end());
    

    // 打印剩余的人员
    for (const Person&
 person : people) {
    
        std::cout <
    <
     person.name <
    <
     " (" <
    <
     person.age <
    <
     ")" <
    <
     std::endl;

    }
    

    return 0;

}
    

在上面的示例中,定义了一个Person结构体,并提供了一个谓词函数isAdult,用于判断一个人是否成年。然后使用remove_if函数结合isAdult函数移除未成年人,最终打印出剩余的成年人。

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


若转载请注明出处: c++ remove_if能操作自定义类型吗
本文地址: https://pptw.com/jishu/690527.html
c++ remove_if能应用于字符串吗 c++ remove_if如何优雅地使用

游客 回复需填写必要信息