std:: collate
From cppreference.net
|
Défini dans l'en-tête
<locale>
|
||
|
template
<
class
CharT
>
class collate ; |
||
La classe
std::collate
encapsule le collationnement (comparaison) et le hachage des chaînes spécifiques aux locales. Ce facet est utilisé par
std::basic_regex
et peut être appliqué, au moyen de
std::locale::operator()
, directement à tous les algorithmes standards qui attendent un prédicat de comparaison de chaînes.
Diagramme d'héritage
Table des matières |
Spécialisations
La bibliothèque standard garantit la fourniture des spécialisations suivantes (elles sont requises pour être implémentées par tout objet locale ):
|
Défini dans l'en-tête
<locale>
|
|
| std :: collate < char > | implémente l'ordre lexicographique des chaînes d'octets |
| std :: collate < wchar_t > | implémente l'ordre lexicographique des chaînes larges |
Types imbriqués
| Type | Définition |
char_type
|
CharT
|
string_type
|
std:: basic_string < CharT > |
Membres de données
| Membre | Description |
std::locale::id
id
[static]
|
l'identifiant de la facette |
Fonctions membres
construit un nouveau facet
collate
(fonction membre publique) |
|
détruit un facet
collate
(fonction membre protégée) |
|
appelle
do_compare
(fonction membre publique) |
|
appelle
do_transform
(fonction membre publique) |
|
appelle
do_hash
(fonction membre publique) |
Fonctions membres protégées
|
[virtual]
|
compare deux chaînes en utilisant les règles de collation de cette facette
(fonction membre protégée virtuelle) |
|
[virtual]
|
transforme une chaîne pour que la collation puisse être remplacée par une comparaison
(fonction membre protégée virtuelle) |
|
[virtual]
|
génère une valeur de hachage entière en utilisant les règles de collation de cette facette
(fonction membre protégée virtuelle) |
Exemple
Exécuter ce code
#include <algorithm> #include <iostream> #include <locale> #include <string> #include <vector> int main() { std::locale::global(std::locale("en_US.utf8")); std::wcout.imbue(std::locale("")); std::vector<std::wstring> v { L"ar", L"zebra", L"\u00f6grupp", L"Zebra", L"\u00e4ngel",L"\u00e5r", L"f\u00f6rnamn" }; std::wcout << "Ordre de classement par défaut des paramètres régionaux : "; std::sort(v.begin(), v.end()); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; std::wcout << "Ordre de classement des paramètres régionaux anglais : "; std::sort(v.begin(), v.end(), std::locale("en_US.UTF-8")); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; std::wcout << "Ordre de classement des paramètres régionaux suédois : "; std::sort(v.begin(), v.end(), std::locale("sv_SE.UTF-8")); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; }
Sortie :
Ordre de classement par défaut des paramètres régionaux : Zebra ar förnamn zebra ängel år ögrupp Ordre de classement des paramètres régionaux anglais : ängel ar år förnamn ögrupp zebra Zebra Ordre de classement des paramètres régionaux suédois : ar förnamn zebra Zebra år ängel ögrupp
Voir aussi
|
compare lexicographique de deux chaînes en utilisant le facette de collation de cette locale
(fonction membre publique de
std::locale
)
|
|
|
représente le
std::collate
fourni par le système pour la locale nommée
(modèle de classe) |