J'essaie de comparer pour les chaînes de style C ordinaires, j'ai trouvé Cependant, j'aimerais avoir ce comportement pour mais je devrais alors vous inquiéter du code utilisant est là un moyen de faire ce genre de travail de collation pour les cordes dans une manière transparente? p> p> std :: string code> s de manière dépendante locale.
strcoll code>, ce que je veux exactement ce que je veux, après avoir fait
std :: setlocale code> p>
std :: String Code> aussi. Je ne pouvais que surcharger
opérateur << / code> pour faire quelque chose comme p>
std :: moins code> et
std :: string :: comparer code>, donc il ne se sent pas bien. P>
4 Réponses :
opérateur () de std :: locale est exactement ce que vous cherchez. Pour obtenir la locale mondiale actuelle, utilisez simplement le constructeur par défaut. P>
C'est pratique. Il fait fonctionner les collections standard sans effort.
La bibliothèque C ++ fournit le Collate Facet pour faire des paramètres régionaux Collation spécifique. P>
Opérateur () sur les paramètres régionaux est le moyen le plus simple que je connaisse pour y accéder.
Après un peu de recherche autour, j'ai réalisé qu'un moyen de le faire pourrait être de surcharger le modèle Il y a probablement un Gazillion bugs dans ce cas, mais comme une preuve de concept: p> HOperver, il ne semble pas fonctionner si vous le basez sur std :: basique_string code> pour créer une nouvelle classe de chaîne localisée.
Char code> de
wchar_t code> et je ne sais pas pourquoi ... p> p>
La raison que le caractère ne fonctionne pas est que cela n'utilise pas Unicode (comme dans ".utf-8". Vous utilisez probablement ISO / IEC 8859-1.
Qu'est-ce que & A + 1 code> est censé faire?