Si tu ne souhaites pas utiliser le std::map parce que notion trop avancée dans ton programme tu peux quand même adapter la solution de JolyLoic avec des vectors.
Je vois 2 façons :
- Tu connais la valeur max de tes chiffres (6 dans ton exemple) et tu crées un
std::vector occurences(chiffre_max);
Tu pourras alors calculer les occurrences de chaque chiffre avec un occurence[chiffre]++;
2 défauts majeurs :
- cela t'oblige à connaitre le chiffre max
- le vector sera très creux si tu à une séquence 11112233399999
Dans ce cas tu crées un vector de taille 10 (en comptant le 0) qui ne contiendra que 3 valeurs. C'est vraiment pas propre niveau mémoire. Donc à n'utiliser que si tu sais que ta séquence est continue (1122334455...)
- Tu crées un
std::vector<std::pair<int,int> > occurences
avec pair.first le chiffre et pair.second le nombre d'occurence.
Mais si tu dois faire des recherches séquentiels ça peut couter cher en temps d'exécution.
Hope it helps !
Partager