📜  C++ STL-algorithm.count_if()函数(1)

📅  最后修改于: 2023-12-03 14:59:45.475000             🧑  作者: Mango

C++ STL-algorithm.count_if()函数

在C++ STL中,count_if()函数是在<algorithm>头文件定义的。该函数用于在给定范围内计算满足特定条件的元素的数量。

函数原型

以下是count_if()函数的原型:

template <class InputIterator, class UnaryPredicate>
  typename iterator_traits<InputIterator>::difference_type
    count_if (InputIterator first, InputIterator last, UnaryPredicate pred); 
  • InputIterator:输入迭代器,指向要计数的元素范围的第一个元素。
  • UnaryPredicate:一元谓词函数或可调用对象,用于检查要计数的元素。UnaryPredicate应接受单个参数,并返回bool类型的值。如果返回值为true,则表示要计数。
  • first:计数范围的第一个元素。
  • last:计数范围的最后一个元素。
  • pred:要应用于计数范围内的元素的一元谓词函数或可调用对象。
功能

count_if()函数的功能是计算满足给定一元谓词函数或可调用对象的元素的数量,并在计数范围内返回该计数。

用法示例
#include <iostream> 
#include <algorithm> 
#include <vector> 
using namespace std; 
  
bool isOdd(int i) 
{ 
    return i % 2 != 0; 
} 
  
int main() 
{ 
    vector<int> v{ 1, 2, 3, 4, 5 }; 
    cout << "The number of odd elements in vector is : "; 
  
    // 使用 count_if 
    cout << count_if(v.begin(), v.end(), isOdd); 
  
    return 0; 
} 

输出:

The number of odd elements in vector is : 3

在上面的示例中,我们首先定义了一个名为isOdd()的谓词函数,该函数接受一个整数作为参数并返回bool类型的值。因此,此函数用于检查是否给定的整数是奇数。

然后我们定义一个vector并使用count_if()来计算满足isOdd()函数条件的元素的数量并输出它。

上述代码块中的调用count_if()如下所示:

count_if(v.begin(), v.end(), isOdd);

该函数从v向量的开头一直到结尾,将每个元素作为参数传递给isOdd()函数来检查奇数条件是否为真,并返回奇数元素的数量。

总结

在C++ STL的<algorithm>库中提供了丰富的函数,使得每个程序员都拥有很多选择帮助提高代码质量和程序效率。count_if()函数就是其中一个实用工具,它可以轻松计算满足特定条件的元素的数量。