Algorithme pour la valeur la plus fréquente d'un conteneur ? [STL] - C++ - Programmation
Marsh Posté le 03-10-2007 à 19:33:44
une astucieuse combinaison de std::unique_copy ret de std::count devrait faire l'affaire
Marsh Posté le 04-10-2007 à 11:52:43
Effectivement. Malheureusement (et ça semble logique), c'est environ 30 fois plus rapide de faire un truc comme :
Code :
|
que :
Code :
|
Donc exit la STL pour cette opération...
(À moins qu'il n'y ait plus astucieux, ce qui ne m'étonnerais guère... )
Marsh Posté le 04-10-2007 à 12:13:23
y a pas de exit STL: faut pas s'étonner. Pour implémenter l'algorithme A, tu utilises l'algorithme B, donc forcément c'est pas les mêmes perfs. Ton besoin est spécifique, donc y a pas. A toi d'etre plus intelligent et d'écrire une version générique
Marsh Posté le 04-10-2007 à 12:16:39
à implémenter avec un for_each, ça doit donner quelque chose de tranquil
Marsh Posté le 04-10-2007 à 13:14:06
for_each est obligatoire ici, sinon c'est pas la peine. Aprés, unique me parait mieux que unique_copy.
Marsh Posté le 17-10-2007 à 21:24:48
SkippyleGrandGourou a écrit : Salut, |
Si ton tableau est déjà trié c qd meme pas sorcier
Marsh Posté le 03-10-2007 à 14:40:13
Salut,
Je me demandais s'il existait un algorithme de la STL pour déterminer la valeur qui apparaît le plus souvent dans un vecteur ? Genre un truc qui pour {1,3,3,9,9,9,9,10,10} rendrait 9 (ou (9;4) tant qu'à faire...).
Merci, en attendant je vais essayer de faire ça avec mes petites mains...
NB: Si toute la liste des algorithmes est là, alors y'a pas... Mais ça me paraît court comme liste ?
Message édité par SkippyleGrandGourou le 03-10-2007 à 14:45:44