Les noms de tri avec des numéros correctement
-
12-09-2019 - |
Question
Pour trier les noms des éléments, je veux soutenir correctement les numéros. dire ceci:
1 Hamlet
2 Ophelia
...
10 Laertes
au lieu de
1 Hamlet
10 Laertes
2 Ophelia
...
Quelqu'un sait-il d'un foncteur de comparaison qui soutient déjà?
(À savoir un prédicat qui peut être transmis à std::sort
)
J'ai essentiellement deux modèles de soutien: nombre Leading (comme ci-dessus), et le numéro à la fin, semblable à l'explorateur:
Dolly
Dolly (2)
Dolly (3)
(je suppose que je pourrais travailler que sur:. Comparer par caractère, et de traiter les valeurs numériques différemment Cependant, ce serait probablement briser unicode collaiton et ainsi de suite)
La solution
Qui est appelé tri alphanumérique.
Consultez ce lien: L'algorithme Alphanum
Autres conseils
Je pense que u peut utiliser un objet paire et ensuite faire vecteur> et puis trier ce vecteur. Les paires sont comparés en fonction de leurs premiers éléments. Alors, de cette façon vous pouvez obtenir le genre que vous désirez.