在C++中,count_if
是STL中的一個算法,用于計算滿足指定條件的元素個數。其語法如下:
template <class InputIterator, class UnaryPredicate>
typename iterator_traits<InputIterator>::difference_type
count_if (InputIterator first, InputIterator last, UnaryPredicate pred);
其中,first
和 last
分別是要搜索的元素范圍的起始和結束迭代器。pred
是一個一元謂詞函數對象,用于指定滿足條件的判定條件。count_if
返回一個整數,表示滿足條件的元素個數。
下面是一個簡單的示例,演示如何使用count_if
來計算一個容器中偶數的個數:
#include <iostream>
#include <vector>
#include <algorithm>
bool isEven(int n) {
return n % 2 == 0;
}
int main() {
std::vector<int> numbers = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int numEven = std::count_if(numbers.begin(), numbers.end(), isEven);
std::cout << "There are " << numEven << " even numbers in the vector." << std::endl;
return 0;
}
在這個示例中,isEven
是一個自定義的判定條件函數,用于判斷一個整數是否為偶數。count_if
函數將這個條件函數應用到容器numbers
中的每個元素,并統計滿足條件的元素個數。
需要注意的是,count_if
函數接受的參數是迭代器,并且可以用于任何支持迭代器的容器類型,如vector
、list
、set
等。