Bibliothèque d'algorithmes C ++ - Fonction count_if ()

La description

La fonction C ++ std::algorithm::count_if() renvoie le nombre d'occurrences de valeur de la plage qui satisfait la condition.

Déclaration

Voici la déclaration de la fonction std :: algorithm :: count_if () sous forme d'en-tête std :: algorithme.

C ++ 98

template <class InputIterator, class Predicate>
typename iterator_traits<InputIterator>::difference_type
count_if (InputIterator first, InputIterator last, UnaryPredicate pred);

Paramètres

  • first - Entrer les itérateurs aux positions initiales de la séquence recherchée.

  • last - Entrer les itérateurs aux positions finales de la séquence recherchée.

  • pred - Prédicat unaire qui prend un argument et renvoie un booléen.

Valeur de retour

Renvoie le nombre d'éléments de la plage pour lesquels pred renvoie true.

Des exceptions

Lève une exception si un prédicat ou une opération sur un itérateur lève une exception.

Veuillez noter que des paramètres non valides provoquent un comportement non défini.

Complexité temporelle

Linéaire dans la distance entre le premier et le dernier .

Exemple

L'exemple suivant montre l'utilisation de la fonction std :: algorithm :: count_if ().

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool predicate(int n) {
   return (n > 3);
}

int main(void) {
   vector<int> v = {1, 2, 3, 4, 5};
   int cnt;

   cnt = count_if(v.begin(), v.end(), predicate);

   cout << "There are " << cnt << " numbers are greater that 3." << endl;

   return 0;
}

Compilons et exécutons le programme ci-dessus, cela produira le résultat suivant -

There are 2 numbers are greater that 3.