std::collate_byname
Определено в заголовочном файле <locale> | ||
|---|---|---|
template< class CharT > class collate_byname : public std::collate<CharT>; |
std::collate_byname — это фасет std::collate, инкапсулирующий локалезависимую сортировку (сравнение) и хеширование строк. Как и std::collate, его можно внедрить в std::regex и применить с помощью std::locale::operator() непосредственно ко всем стандартным алгоритмам, которым требуется предикат сравнения строк.
Специализации
Стандартная библиотека гарантированно предоставляет следующие специализации:
Определено в заголовочном файле <locale> |
|
|---|---|
| std::collate_byname<char> | локалезависимая сортировка многобайтовых строк |
| std::collate_byname<wchar_t> | локалезависимая сортировка широких строк |
Функции-члены
создаёт новый фасет collate_byname (открытая функция-член) |
|
уничтожает фасет collate_byname (защищённая функция-член) |
std::collate_byname::collate_byname
explicit collate_byname( const char* name, std::size_t refs = 0 ); | ||
explicit collate_byname( const std::string& name, std::size_t refs = 0 ); | (начиная с C++11) |
Создаёт новый фасет std::collate_byname для локали с name.
refs используется для управления ресурсами: если refs == 0, реализация уничтожает фасет после уничтожения последнего объекта std::locale, который его содержит. В противном случае объект не уничтожается.
Параметры
| name | - | имя локали |
| refs | - | количество ссылок на фасет |
std::collate_byname::~collate_byname
protected: ~collate_byname(); |
Уничтожает фасет.
Унаследовано от std::collate
Вложенные типы
| Тип | Определение |
|---|---|
char_type |
CharT |
string_type | std::basic_string<CharT> |
Поля данных
| Поле | Описание |
|---|---|
std::locale::id id [static] | идентификатор фасета |
Функции-члены
вызывает do_compare (открытая функция-член std::collate<CharT>) |
|
вызывает do_transform (открытая функция-член std::collate<CharT>) |
|
вызывает do_hash (открытая функция-член std::collate<CharT>) |
Защищённые функции-члены
|
[виртуальная] | сравнивает две строки, используя правила сортировки этого фасета (виртуальная защищённая функция-член std::collate<CharT>) |
|
[виртуальная] | преобразует строку так, чтобы сортировку можно было заменить сравнением (виртуальная защищённая функция-член std::collate<CharT>) |
|
[виртуальная] | вычисляет целочисленное хеш-значение, используя правила сортировки этого фасета (виртуальная защищённая функция-член std::collate<CharT>) |
Примечания
Порядок сортировки соответствует словарному порядку: положение буквы в национальном алфавите (её класс эквивалентности) важнее регистра или варианта написания. Внутри класса эквивалентности строчные символы сортируются перед соответствующими прописными, а для символов с диакритическими знаками может применяться локалезависимый порядок. В некоторых локалях группы символов сравниваются как единые единицы сортировки. Например, "ch" в чешском алфавите следует за "h" и предшествует "i", а "dzs" в венгерском алфавите следует за "dz" и предшествует "g".
Пример
См. также
| определяет лексикографическое сравнение и хеширование строк (шаблон класса) |
|
| сравнивает две строки в соответствии с текущей локалью (функция) |
|
| сравнивает две широкие строки в соответствии с текущей локалью (функция) |
|
| лексикографически сравнивает две строки, используя фасет collate этой локали (открытая функция-член std::locale) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/collate_byname