Spec-Zone.ru › C++

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] идентификатор фасета

Функции-члены

compare
вызывает do_compare
(открытая функция-член std::collate<CharT>)
transform
вызывает do_transform
(открытая функция-член std::collate<CharT>)
hash
вызывает do_hash
(открытая функция-член std::collate<CharT>)

Защищённые функции-члены

do_compare
[виртуальная]
сравнивает две строки, используя правила сортировки этого фасета
(виртуальная защищённая функция-член std::collate<CharT>)
do_transform
[виртуальная]
преобразует строку так, чтобы сортировку можно было заменить сравнением
(виртуальная защищённая функция-член std::collate<CharT>)
do_hash
[виртуальная]
вычисляет целочисленное хеш-значение, используя правила сортировки этого фасета
(виртуальная защищённая функция-член std::collate<CharT>)

Примечания

Порядок сортировки соответствует словарному порядку: положение буквы в национальном алфавите (её класс эквивалентности) важнее регистра или варианта написания. Внутри класса эквивалентности строчные символы сортируются перед соответствующими прописными, а для символов с диакритическими знаками может применяться локалезависимый порядок. В некоторых локалях группы символов сравниваются как единые единицы сортировки. Например, "ch" в чешском алфавите следует за "h" и предшествует "i", а "dzs" в венгерском алфавите следует за "dz" и предшествует "g".

Пример

См. также

collate
определяет лексикографическое сравнение и хеширование строк
(шаблон класса)
strcoll
сравнивает две строки в соответствии с текущей локалью
(функция)
wcscoll
сравнивает две широкие строки в соответствии с текущей локалью
(функция)
operator()
лексикографически сравнивает две строки, используя фасет collate этой локали
(открытая функция-член std::locale)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/collate_byname

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API