Estadística de duración del servicio (20 puntos) (un truco en el mapa)

Dada la antigüedad en el servicio de N empleados en una empresa, se requiere generar el número de empleados en cada antigüedad en orden creciente de antigüedad.

Formato de entrada:
Introduzca primero un número entero positivo N (≤10 5), que es el número total de empleados, luego proporcione N números enteros, es decir, el tiempo de servicio de cada empleado, en el rango [0, 50].

Formato de
salida : muestra el número de empleados de cada edad de servicio en orden creciente de edad de servicio, el formato es: "edad de servicio: número de personas". Cada artículo ocupa una línea. Si el número de personas es 0, el artículo no se emite.

Muestra de entrada:

8
10 2 0 5 7 2 5 2

Salida de muestra:

0: 1
2: 3
5: 2
7: 1
10: 1

Esta pregunta se emite en orden ascendente de servicio, directamente en el mapa, las claves no se repiten y los valores de las claves en el mapa se ordenan de pequeños a grandes, y la clasificación se realiza directamente. Sin embargo, uso C ++ para escribir este ejercicio de estructura de datos. El examen final es muy bueno. . . .
#include <iostream> 
#include <algorithm>
#include <map>
using namespace std;

int main(){
    
    
	ios::sync_with_stdio(false);
	cin.tie(0),cout.tie(0);
	map<int,int> m;
	int n,age;
	cin >> n;
	for(int i = 0;i<n;i++){
    
    
		cin >> age;
		m[age]++;
	}
	for(auto it = m.begin();it!=m.end();it++){
    
    
		if(it->second>0){
    
    
			cout << it->first << ":" << it->second << endl;
		}
	}
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_45845039/article/details/108743625
Recomendado
Clasificación