La fonction de comptage de C de la STL

compter: compter le nombre de fois où une valeur se produit dans une séquence 

count_if: compter le nombre de fois d' une sous - jacente dans la séquence

compter et compter count_if fonction est une fonction de, premier regard sur la fonction de comptage:

la fonction de comptage est une fonction de: une valeur statistique de conteneurs égal au nombre d'éléments.

Consulter les paramètres de la fonction:
COUNT (première, dernière, valeur), est d' abord les premiers conteneurs itérateur, dernière itération est à l'extrémité du récipient, la valeur est de demander des éléments.

Je pourrais dire moins détaillée, regardez un exemple:
vous n nombres (n <= 1000), pour vous donner un nombre m, demandez - vous: le nombre de m numérique se produit dans les numéros de n.

Voir cette question, nous allons penser à utiliser la fonction de tri avec equal_range + (n va d'environ 10 000 --- 100 000), mais n <= 1000 petite quantité de données, afin que nous puissions utiliser directement la fonction de comptage, ici nous notons que: la complexité de la fonction de comptage est linéaire, le pire des cas est O (n). Cette question est très simple, nous allons bientôt pouvoir écrire le code:

1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithme>
 4 #include <vector>
 5 en  utilisant l'  espace de noms std;
6  int main ()
 7  {
 8      int n;
9      vector < int > V;
10      cin >> n;
11      pour ( int i = 0 ; i <n; i ++ )
 12      {
 13          int température;
14          cin >> temp;
15         V.push_back (temp);
16      }
 17      int demander;
18      tandis que (cin >> demander)
 19      {
 20          int num = count (V.begin (), V.end (), demander);
21          Cout << num << endl;
22      }
 23      retour  0 ;
24 }

Cependant, si l' on veut utiliser un nombre impair fonctions statistiques STL de 1-10, comment le faire?

Nous avons donc besoin d'utiliser la fonction count_if, qui est une fonction très utile, nous devons nous concentrer là - dessus.

Regardez les paramètres count_if fonction:
count_if (première, dernière, la valeur, cmp), d' abord, dirigé par le iterator, pour la dernière iterator fin, la valeur de l'élément que vous voulez interroger, cmp comme la fonction de comparaison.

En fait, la fonction de comparaison cmp est le cœur de toute fonction count_if, la fonction de comparaison cmp est écrit dans la programmation du peuple, la valeur de retour est un booléen, je crois, après avoir lu mon exemple, vous pouvez comprendre l'application de cette fonction. Exemple: compter le nombre de numéro impair 1-10 (mon code):

1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithme>
 4 #include <vector>
 5 en  utilisant l'  espace de noms std;
6  bool comp ( int num)
 7  {
 8      retour num% 2 ;
9  }
 10  int main ()
 11  {
 12      vector < int > V;
13      pour ( int i = 1 ; i <= 10 ; i ++ )
 14         V.push_back (i);
15      Cout << count_if (V.begin (), V.end (), comp) << endl;
16      retour  0 ;
17 }

exemple:

1  // 统计成绩大于90 
2  
3 #include <iostream>
 4 #include <cstdio>
 5 #include <cstring>
 6 #include <vector>
 7 #include <algorithme>
 8 en  utilisant l'  espace de noms std;
9  struct étudiant
 10  {
 11      chaîne nom;
12      int partition;
13  };
14  bool comparer (étudiant a)
 15  {
 16      retour  90 < a.score;
17  }
 18  intmain ()
 19  {
 20      int n;
21      cin >> n;
22      vecteur <étudiant> V;
23      pour ( int i = 0 ; i <n; i ++ )
 24      {
 25          température de l' étudiant;
26          cin >> temp.name >> temp.score;
27          V.push_back (temp);
28      }
 29      Cout << count_if (V.begin (), V.end (), comparer) << endl;
30      retour  0 ;
31 }

 

Lien original: https: //www.cnblogs.com/Roni-i/p/8675528.html

Je suppose que tu aimes

Origine www.cnblogs.com/jaszzz/p/12635244.html
conseillé
Classement