c++

C++ count_if处理自定义类型

小樊
83
2024-08-23 17:56:29
栏目: 编程语言

在C++中,可以使用count_if函数来处理自定义类型。count_if函数可以接受一个范围和一个谓词函数,并返回范围中满足谓词函数条件的元素个数。

下面是一个例子,展示如何使用count_if函数处理一个自定义类型Person的向量,统计其中满足条件的元素个数:

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

// 自定义类型 Person
struct Person {
    std::string name;
    int age;
};

// 谓词函数,用于判断年龄大于等于18岁的人
bool isAdult(const Person& person) {
    return person.age >= 18;
}

int main() {
    // 创建一个存储 Person 对象的向量
    std::vector<Person> people = {
        {"Alice", 25},
        {"Bob", 16},
        {"Charlie", 30},
        {"David", 20}
    };

    // 使用 count_if 函数统计年龄大于等于18岁的人数
    int numAdults = std::count_if(people.begin(), people.end(), isAdult);

    std::cout << "Number of adults: " << numAdults << std::endl;

    return 0;
}

在上面的例子中,定义了一个自定义类型Person,并创建了一个存储Person对象的向量people。然后定义了一个谓词函数isAdult,用于判断一个Person对象是否年龄大于等于18岁。最后使用count_if函数统计people向量中满足条件的元素个数,并输出结果。

通过这种方式,可以方便地处理自定义类型的数据,并使用count_if函数对其进行处理。

0
看了该问题的人还看了