Comment puis-je trier une std::map d'abord par la valeur, puis par la clé?

J'ai besoin de trier un std::map par valeur, par clé. La carte contient des données comme suit:

  1  realistically
  8         really
  4         reason
  3     reasonable
  1     reasonably
  1     reassemble
  1    reassembled
  2      recognize
 92         record
 48        records
  7           recs

J'ai besoin d'obtenir les valeurs dans l'ordre, mais le comble, c'est que les clés doivent être dans l'ordre alphabétique d'après les valeurs sont dans l'ordre. Comment puis-je faire cela?

  • utilisez-vous un std::map pour stocker les données ?
  • Mettre le std::pair<int, std::string>s dans une liste et de les trier.
  • oui, il est stocké dans une carte.
  • Je sais qui permettrait de mettre les valeurs dans l'ordre, mais alors ne serait-il garder les clés dans l'ordre alphabétique, après tri des valeurs?
  • tri sur les paires sortes sur en premier, puis le deuxième élément. Voir here
  • uniquement la valeur de stackoverflow.com/questions/2699060/stl-map-sort-by-value
  • Vous pouvez utiliser std::multimap avec votre values comme keys car il permet de dupliquer des clés et de travailler avec des std::sort

InformationsquelleAutor Trevor Hutto | 2013-11-07