Bonjour à tous!
Je crée une multimap:
Je possède maintenant une multimap avec un nombre quelconque d'élément (trié selon mon critère), et je ne voudrais garder que les n premiers éléments, c'est à dire supprimer tous les autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 PointDeControle::Tableau::const_iterator iter; std::multimap<float, int> liste_distance; // Possibilité de plusieurs distances égales for (iter = pdc_depart_.begin(); iter != pdc_depart_.end(); iter++) { liste_distance.insert(std::multimap<float, int>::value_type(distCarre(iter->second, point_courant), iter->first) ); } // On a une liste DISTANCE / Cle associée triée orde croissant
J'ai bien entendu pensé à un "iter++" n fois et utiliser erase(iter, end), mais c'est pas une solution géniale.
Si quelqu'un a une solution "propre" à me proposer (pas de recopie), je suis preneur !![]()
Partager