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>

Члены-функции

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

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

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

Примечания

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

Пример

См. также

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

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

Spec-Zone.ru

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