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

Boost.Locale: boost::locale::boundary::segment_index< BaseIterator > Class Template Reference

Boost , ,

boost::locale::boundary::segment_index< BaseIterator > Class Template Reference

Этот класс содержит индекс сегментов в текстовом диапазоне и позволяет им повторяться.Больше...

<#include <boost/locale/boundary/index.hpp>>

Public Types

typedef BaseIterator base_iterator
 
typedef unspecified_iterator_type iterator
 
typedef unspecified_iterator_type const_iterator
 
typedef segment< base_iteratorvalue_type
 

Public Member Functions

 segment_index ()
 
 segment_index (boundary_type type, base_iterator begin, base_iterator end, rule_type mask, std::locale const &loc=std::locale())
 
 segment_index (boundary_type type, base_iterator begin, base_iterator end, std::locale const &loc=std::locale())
 
 segment_index (boundary_point_index< base_iterator > const &)
 
segment_index const & operator= (boundary_point_index< base_iterator > const &)
 
void map (boundary_type type, base_iterator begin, base_iterator end, std::locale const &loc=std::locale())
 
iterator begin () const
 
iterator end () const
 
iterator find (base_iterator p) const
 
rule_type rule () const
 
void rule (rule_type v)
 
bool full_select () const
 
void full_select (bool v)
 

Friends

class boundary_point_index< base_iterator >
 

Detailed Description

template<typename BaseIterator>
class boost::locale::boundary::segment_index< BaseIterator >

Этот класс содержит индекс сегментов в текстовом диапазоне и позволяет им повторяться.

Этот класс обеспечиваетначало()иконец ()функции-члены, возвращающие двунаправленные итераторы всегментобъектов.

Он предоставляет два варианта выбора сегментов:

  • правило (rule_type mask)— маска, позволяющая выбирать только определенные типы сегментов согласно различным маскам какслово_any.
    По умолчанию выбирается любой тип границ.
    Например: при использовании анализа границ слов, когда представленная маска являетсяword_kana, итераторы будут повторяться только над словами, содержащими буквы Каны, аword_anyбудет выбирать все типы слов, исключая диапазоны, которые состоят из белого пространства и знаков препинания. Так, повторяя над текстом «быть или не быть?» ссловом_anyправило возвращало бы сегменты «к», «быть», «или», «не», «к», «быть», вместо по умолчанию «к», «, «быть», «, «или», «, «не», «к», «, «быть», «?»
  • full_select(bool how)— флаг, определяющий способ выбора диапазона, если правило предыдущей пограничной точки не соответствует выбранному правилу.
    Например: Мы хотим извлечь все предложения из следующего текста: «Привет! Как ты себя чувствуешь?
    Этот текст содержит три граничные точки, разделяющие его на предложения по разным правилам:
    • Восклицательный знак «!» заканчивается предложением «Привет!».
    • Линейная лента, которая разделяет предложение «Как вы?» на две части.
    • Вопросительный знак, который завершает второе предложение.
      Если бы вы только изменили правилонаsentence_term, тогдаsegment_indexпредоставил бы два предложения «Привет!» и «Вы?», поскольку только они фактически заканчиваются с требуемым терминатором «!» или «?». Но, изменивfull_select()на true, выбранный сегмент будет включать весь текст вплоть до предыдущей действительной пограничной точки и вернет два ожидаемых предложения: «Привет!» и «Как дела?».

Этот класс позволяет найти сегмент по заданному итератору в диапазоне с помощьюfind()Функция члена.

Note
  • Изменение любого из вариантов -правило()илиfull_select()и, конечно, повторное индексирование текста аннулирует существующие итераторы, и они больше не могут использоваться.
  • segment_indexможет быть создан изborder_point_indexили другогоsegment_index, который был создан с тем жеborder_type. Это очень быстрая операция, так как они имеют одинаковый индекс и не требуют его регенерации.
See Also
Examples:
boundary.cpp, and wboundary.cpp.

The documentation for this class was generated from the following file:

Статья Boost.Locale: boost::locale::boundary::segment_index< BaseIterator > Class Template Reference раздела может быть полезна для разработчиков на c++ и boost.




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 21:23:32/0.025421857833862/1