Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

Boost.Locale: Collation

Boost , ,

Collation

Повышаю. Locale предоставляет классcollator, полученный изstd::collate, который добавляет поддержку первичного, вторичного, третичного, четвертичного и идентичных уровней сравнения. Их можно приблизительно определить как:

  1. Основной – игнорировать акценты и случай персонажа, сравнивая только базовые буквы. Например, «фасад» и «фасад» одинаковы.
  2. Вторичный – игнорировать случай персонажа, но рассмотреть акценты. «Фасад» и «фасад» разные, но «фасад» и «фасад» одинаковы.
  3. Tertiary – рассмотрите как случай, так и акценты: «Фасад» и «Фасад» разные. Игнорируйте пунктуацию.
  4. Quaternary – рассмотрите все случаи, акценты и пунктуации. Слова должны быть идентичными с точки зрения представления Unicode.
  5. Идентичный – как четвертичный, но сравните и кодовые точки.

Существует два способа использования грани коллатора: непосредственно, называя его функции-члены, сравнивают,преобразуютихэшируют, или косвенно, используя класс шаблоновкомпараторав алгоритмах STL.

Например:

wstring a=L"Façade", b=L"facade";
bool eq = 0 == use_facet<collator<wchar_t> >(loc).compare(collator_base::secondary,a,b);
wcout << a <<L" and "<<b<<L" are " << (eq ? L"identical" : L"different")<<endl;

std::localeпредназначен для использования в качестве класса сравнения в коллекциях STL и алгоритмах. Для получения аналогичной функциональности с уровнями сравнения необходимо использовать класс компаратора.

std::map<std::string,std::string,comparator<char,collator_base::secondary> > strings;
// Now strings uses the default system locale for string comparison

Вы также можете установить определенную локализацию или уровень при создании и использовании классакомпаратора:

comparator<char> comp(some_locale,some_level);
std::map<std::string,std::string,comparator<char> > strings(comp);

Статья Boost.Locale: Collation раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 00:11:17/0.0051569938659668/1