| Localization library | |||||||||||||||||||||||||
| Regular expressions library(C++11) | |||||||||||||||||||||||||
| Formatting library(C++20) | |||||||||||||||||||||||||
| Null-terminated sequence utilities | |||||||||||||||||||||||||
| Byte strings | |||||||||||||||||||||||||
| Multibyte strings | |||||||||||||||||||||||||
| Wide strings | |||||||||||||||||||||||||
| Primitive numeric conversions | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Text encoding identifications | |||||||||||||||||||||||||
| |||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Defined in header <locale> | ||
template<class CharT> class collate; | ||
Classstd::collate encapsulates locale-specific collation (comparison) and hashing of strings. This facet is used bystd::basic_regex and can be applied, by means ofstd::locale::operator(), directly to all standard algorithms that expect a string comparison predicate.
Inheritance diagram
Contents |
The standard library is guaranteed to provide the following specializations (they arerequired to be implemented by any locale object):
Defined in header <locale> | |
| std::collate<char> | implements lexicographical ordering of byte strings |
| std::collate<wchar_t> | implements lexicographical ordering of wide strings |
| Type | Definition |
char_type | CharT |
string_type | std::basic_string<CharT> |
| Member | Description |
std::locale::idid[static] | the identifier of thefacet |
constructs a newcollate facet(public member function) | |
destructs acollate facet(protected member function) | |
invokesdo_compare(public member function)[edit] | |
invokesdo_transform(public member function)[edit] | |
invokesdo_hash(public member function)[edit] |
[virtual] | compares two strings using this facet's collation rules (virtual protected member function)[edit] |
[virtual] | transforms a string so that collation can be replaced by comparison (virtual protected member function)[edit] |
[virtual] | generates an integer hash value using this facet's collation rules (virtual protected member function)[edit] |
#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<<"Default locale collation order: ";std::sort(v.begin(), v.end());for(auto s: v)std::wcout<< s<<' ';std::wcout<<'\n'; std::wcout<<"English locale collation order: ";std::sort(v.begin(), v.end(),std::locale("en_US.UTF-8"));for(auto s: v)std::wcout<< s<<' ';std::wcout<<'\n'; std::wcout<<"Swedish locale collation order: ";std::sort(v.begin(), v.end(),std::locale("sv_SE.UTF-8"));for(auto s: v)std::wcout<< s<<' ';std::wcout<<'\n';}
Output:
Default locale collation order: Zebra ar förnamn zebra ängel år ögruppEnglish locale collation order: ängel ar år förnamn ögrupp zebra ZebraSwedish locale collation order: ar förnamn zebra Zebra år ängel ögrupp
| lexicographically compares two strings using this locale's collate facet (public member function of std::locale)[edit] | |
| represents the system-suppliedstd::collate for the named locale (class template)[edit] |