std:: collate
From cppreference.net
|
Definiert im Header
<locale>
|
||
|
template
<
class
CharT
>
class collate ; |
||
Die Klasse
std::collate
kapselt localespezifische Sortierung (Vergleich) und Hash-Bildung von Zeichenketten. Diese Facette wird von
std::basic_regex
verwendet und kann mittels
std::locale::operator()
direkt auf alle Standardalgorithmen angewandt werden, die ein Zeichenketten-Vergleichsprädikat erwarten.
Vererbungsdiagramm
Inhaltsverzeichnis |
Spezialisierungen
Die Standardbibliothek garantiert die Bereitstellung der folgenden Spezialisierungen (sie sind von jedem Locale-Objekt implementiert werden müssen ):
|
Definiert im Header
<locale>
|
|
| std :: collate < char > | implementiert lexikographische Ordnung von Byte-Strings |
| std :: collate < wchar_t > | implementiert lexikographische Ordnung von Wide-Strings |
Verschachtelte Typen
| Typ | Definition |
char_type
|
CharT
|
string_type
|
std:: basic_string < CharT > |
Datenmitglieder
| Mitglied | Beschreibung |
std::locale::id
id
[static]
|
der Identifikator des Facet |
Memberfunktionen
Konstruiert ein neues
collate
Facet
(öffentliche Elementfunktion) |
|
Zerstört ein
collate
Facet
(geschützte Elementfunktion) |
|
Ruft
do_compare
auf
(öffentliche Elementfunktion) |
|
Ruft
do_transform
auf
(öffentliche Elementfunktion) |
|
Ruft
do_hash
auf
(öffentliche Elementfunktion) |
Geschützte Memberfunktionen
|
[virtual]
|
vergleicht zwei Zeichenketten gemäß den Kollationsregeln dieser Facette
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
transformiert eine Zeichenkette, sodass Kollation durch Vergleich ersetzt werden kann
(geschützte virtuelle Elementfunktion) |
|
[virtual]
|
erzeugt einen ganzzahligen Hash-Wert unter Verwendung der Kollationsregeln dieser Facette
(geschützte virtuelle Elementfunktion) |
Beispiel
Diesen Code ausführen
#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 << "Standard-Lokalsortierreihenfolge: "; std::sort(v.begin(), v.end()); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; std::wcout << "Englische Lokalsortierreihenfolge: "; std::sort(v.begin(), v.end(), std::locale("en_US.UTF-8")); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; std::wcout << "Schwedische Lokalsortierreihenfolge: "; std::sort(v.begin(), v.end(), std::locale("sv_SE.UTF-8")); for (auto s : v) std::wcout << s << ' '; std::wcout << '\n'; }
Ausgabe:
Standard-Lokalsortierreihenfolge: Zebra ar förnamn zebra ängel år ögrupp Englische Lokalsortierreihenfolge: ängel ar år förnamn ögrupp zebra Zebra Schwedische Lokalsortierreihenfolge: ar förnamn zebra Zebra år ängel ögrupp
Siehe auch
|
vergleicht zwei Zeichenketten lexikografisch unter Verwendung des Collate-Facets dieser Locale
(öffentliche Elementfunktion von
std::locale
)
|
|
|
repräsentiert den systemseitig bereitgestellten
std::collate
für die benannte Locale
(Klassentemplate) |