Manipulation de données - Itération et transformation

Manipulation de données - count et count_if

Recherche

count et count_if

Poursuivons avec les algorithmes count et count_if qui permettent de compter le nombre d’éléments d’un conteneur dont la valeur est égale à une valeur donnée ou vérifiant un critère spécifié par l’intermédiaire d’un prédicat unaire. Ces deux algorithmes sont déclarés de la manière suivante dans l’en-tête <algorithm> :

template <class InputIterator, class T> 
iterator_traits<InputIterator>::difference_type 
    count(InputIterator premier, InputIterator dernier, const T &valeur); 

template <class InputIterator, class Predicat> 
iterator_traits<InputIterator>::difference_type 
    count_if(InputIterator premier, InputIterator dernier, Predicat p);


Vous constatez que ces algorithmes prennent en argument deux itérateurs spécifiant l’intervalle des éléments sur lesquels le test doit être effectué, et la valeur avec laquelle ces éléments doivent être comparés ou un prédicat unaire. Dans ce cas, le résultat de ce prédicat indique si l’élément qu’il reçoit en argument doit être compté ou non.

Code 9.10 : algorithme de décompte d’éléments

#include <iostream> 
#include <functional> 
#include <algorithm> 

using namespace std; 

bool parity_even(int i) 
{ 
   return (i & 1) == 0; 
} 

int main() 
{ 
   int tab[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 
   //On compte le nombre d’éléments pairs : 
      cout << "Nombre d’éléments pairs dans le tableau {0,1,2,3,4,5,6,7,8,9}: "; 
   cout << count_if(tab, tab+10, ptr_fun(&parity_even)) << endl; 
}


Le texte original de cette fiche pratique est extrait de
«Tout sur le C++» (Christine EBERHARDT, Collection
CommentCaMarche.net, Dunod, 2009)

Dernière modification le vendredi 30 octobre 2009 à 12:10:35.Ce document intitulé « Manipulation de données - count et count_if » issu de Comment Ça Marche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Meilleures réponses pour « Manipulation de données count et count_if » dans :
[Outlook 2003] Exportation et importation de données VoirIl est possible d'exporter toutes les données personnelles (contacts, e-mails, calendrier, etc...), à condition de le paramétrer à l'exportation (voir ci-dessous). Exportation ou sauvegarde Importation ou restauration A voir...
Prévention de l'Exécution des Données VoirParamétrer ou désactiver la Prévention d'Exécution des Données (PED) Depuis le SP2 de Windows XP (Vista inclus), une nouvelle gestion de la mémoire (mode No eXecute) a été ajoutée, elle permet aux processeurs Athlon 64 d'AMD de protéger le système...
Bases de données - Introduction VoirQu'est-ce qu'une base de données ? Une base de données (son abréviation est BD, en anglais DB, database) est une entité dans laquelle il est possible de stocker des données de façon structurée et avec le moins de redondance possible. Ces données...
PHP - Récupération de données VoirPHP rend très simple la récupération de données envoyées par l'intermédiaire de formulaires HTML. Création d'un formulaire Grâce à la balise FORM du langage HTML, il est très simple de créer des formulaires comprenant : des champs de saisie des...
PHP - Bases de données VoirPhp permet un interfaçage très simple avec un grand nombre de bases de données. Lorsqu'une base de données n'est pas directement supportée par Php, il est possible d'utiliser un driver ODBC, pilote standard pour communiquer avec les bases de...
Collection CommentÇaMarche.net