Ordonner les éléments d'une map!
Bonjour, je veux trier les éléments d'une map qui ont la structure ChaineDeCaractèreCst_entier (voir debut_marqueurconcat.str() dans le code ci après).
Je veux faire le trie en fonction de la valeur de l'entier ( curDm->first dans le code ci après).
Exemple pour le jeu d'élément (2 6 5 8 3) les rangs seront ( 2-> 1er, 6 ->4 ième ........8-> 5ième).
Mon code marche bien mais il fait le trier selon les valeurs croissantes de la chaine de caractère ( debut_marqueurconcat.str() ) elle même.
Quelqu'un saurait il comment faire svp?
Merci d'avance!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
|
for(map<string, multimap<int, string> >::iterator curEspece = FamillesTrieesParEspece.begin(); curEspece!= FamillesTrieesParEspece.end(); ++curEspece)
{
multimap<string, int> LocalDm2Rang; //Dm - Rang
string curEspeceName = curEspece -> first;
unsigned int rang=1;
for(multimap<int, string>::iterator curDm = curEspece ->second.begin(); curDm != curEspece ->second.end(); ++curDm){
std::ostringstream debut_marqueurconcat;
std::string espace = "_";
debut_marqueurconcat << curEspeceName << "_" << curDm->first ;
LocalDm2Rang.insert(pair< string, int> (debut_marqueurconcat.str(), rang));
curDmat.insert(pair< string, string> (debut_marqueurconcat.str(), curDm->second));
rang++;
/*fichierF << curEspece -> first;
fichierF <<" "<< curDm -> first << " : " ;//Dm;
fichierF <<" "<< curDm -> second << " : " ;//Famille ;
fichierF << rang << endl;*/
}
Dm2rangParEspece.insert(pair <string, multimap<string, int> > (curEspeceName , LocalDm2Rang)); // Associe Espece <Dm , Rang> |