阅读量:0
在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
函数对其进行处理。