función de recuento de C ++ STL

contar: contar el número de veces que un valor se produce en una secuencia 

count_if: contar el número de veces que un partido predicado en la secuencia

contar y contar count_if función es una función de, primer vistazo a la función de recuento:

función de recuento es una función de: un valor estadístico contenedor igual al número de elementos.

Mira a los parámetros de función:
COUNT (primero, último, valor); Primero es los primeros contenedores iterador, última iterador está en el extremo del contenedor, valor es preguntar elementos.

Yo podría decir lo menos detallado, vistazo a un ejemplo:
que los números n (n <= 1000), que le da un número m, usted pregunta: el número de metros digitales se produce en los números n.

Ver esta pregunta, vamos a pensar en utilizar la función de clasificación con equal_range + (n oscila de alrededor de 10.000 --- 100.000), pero n <= 1000 pequeña cantidad de datos, por lo que podemos utilizar directamente la función de recuento, aquí observamos que: la complejidad de la función de recuento es lineal, el peor caso es O (n). Esta pregunta es muy simple, por lo que pronto será capaz de escribir el código:

1 #include <iostream>
 2 #include <cstdio>
 3 #include <algoritmo>
 4 #include <vector>
 5  usando  espacio de nombres std;
6  int main ()
 7  {
 8      int n;
9      vector < int > V;
10      cin >> n;
11      para ( int i = 0 ; i <n; i ++ )
 12      {
 13          int temp;
14          cin >> temp;
15         V.push_back (temp);
16      }
 17      Int preguntan;
18      , mientras que (cin >> preguntar)
 19      {
 20          int num = count (V.begin (), V.END (), preguntar);
21          cout << num << endl;
22      }
 23      de retorno  0 ;
24 }

Sin embargo, si queremos utilizar las funciones de estadística STL número impar de 1-10, cómo hacerlo?

Así, tenemos que la función de uso count_if, que es una función muy útil, hay que centrarse en ella.

Mira los parámetros count_if función:
count_if (nombre, apellido, valor, cmp); En primer lugar, dirigido por el iterador, pasado por el iterador final, el valor para el elemento que desea consultar, cmp como la función de comparación.

De hecho, el CMP función de comparación es el núcleo de toda la función count_if, cmp función de comparación está escrito en la programación de las personas, el valor de retorno es un valor booleano, creo que después de leer mi ejemplo, se puede entender la aplicación de esta función. Ejemplo: contar el número de impares 1-10 (mi código):

1 #include <iostream>
 2 #include <cstdio>
 3 #include <algoritmo>
 4 #include <vector>
 5  usando  espacio de nombres std;
6  bool comp ( int num)
 7  {
 8      retorno num% 2 ;
9  }
 10  int main ()
 11  {
 12      vector < int > V;
13      para ( int i = 1 ; i <= 10 ; i ++ )
 14         V.push_back (i);
15      cout << count_if (V.begin (), V.END (), comp) << endl;
16      de retorno  0 ;
17 }

Ejemplo:

1  // 统计成绩大于90 
2  
3 # include <iostream>
 4 #include <cstdio>
 5 #include <cstring>
 6 #include <vector>
 7 #include <algoritmo>
 8  usando  espacio de nombres std;
9  struct estudiante de
 10  {
 11      string nombre;
12      int puntuación;
13  };
14  bool comparan (estudiante a)
 15  {
 16      retorno  90 < a.score;
17  }
 18  intmain ()
 19  {
 20      int n;
21      cin >> n;
22      vector <estudiante> V;
23      para ( int i = 0 ; i <n; i ++ )
 24      {
 25          temp estudiante;
26          cin >> >> temp.name temp.score;
27          V.push_back (temp);
28      }
 29      tribunal << count_if (V.begin (), V.END (), comparar) << endl;
30      de retorno  0 ;
31 }

 

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

Supongo que te gusta

Origin www.cnblogs.com/jaszzz/p/12635244.html
Recomendado
Clasificación