在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
函数对其进行处理。