在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
函數對其進行處理。