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> |
Члены-функции
вызывает do_compare (публичная функция-член std::collate<CharT>) |
|
вызывает do_transform (публичная функция-член std::collate<CharT>) |
|
вызывает do_hash (публичная функция-член std::collate<CharT>) |
Защищённые функции-члены
|
[virtual] | сравнивает две строки по правилам сортировки, определённым этим фасетом (виртуальная защищённая функция-член std::collate<CharT>) |
|
[virtual] | преобразует строку таким образом, чтобы сортировку можно было заменить сравнением (виртуальная защищённая функция-член std::collate<CharT>) |
|
[virtual] | генерирует целочисленное значение хэша, используя правила сортировки, определённые этим фасетом (виртуальная защищённая функция-член std::collate<CharT>) |
Примечания
Порядок сортировки — это лексикографический порядок: положение буквы в национальном алфавите (ее эквивалентный класс) имеет более высокий приоритет, чем её регистр или вариант. Внутри класса эквивалентности строчные символы сортируются перед их заглавными эквивалентами, и для символов с диакритическими знаками может применяться порядок, специфичный для локали. В некоторых локалях группы символов сравниваются как единые единицы сортировки. Например, "ch" в чешском языке следует за "h" и предшествует "i", а "dzs" в венгерском языке следует за "dz" и предшествует "g".
Пример
См. также
| определяет лексикографическое сравнение и хэширование строк (шаблон класса) |
|
| сравнивает две строки в соответствии с текущей локалью (функция) |
|
| сравнивает две широкие строки в соответствии с текущей локалью (функция) |
|
| лексикографически сравнивает две строки, используя фасет сортировки этой локали (публичная функция-член std::locale) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/collate_byname