![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Function SynopsisBoost , Chapter 1. Boost.Icl , Interface
|
владелец |
Типы аргументов |
Описание |
---|---|---|
|
контейнер или интервальный тип |
|
< |
Тип аргумента полиморфного контейнера |
|
< |
Тип полиморфного итератора |
|
|
Тип полиморфного элемента_iterator для интервальных контейнеров |
|
< |
various types |
|
1,2, ... |
количество реализаций для этой функции |
|
A |
implementation generated by compilers |
|
T::element_type |
the element type of |
|
T::segment_type |
Тип сегмента< |
|
element sets |
< |
|
интервал_множества |
один из типов интервальных наборов |
|
T::element_type |
тип< |
|
T::segment_type |
тип< |
|
Элементные карты |
< |
|
interval_maps |
one of the interval map types |
|
дискретные типы |
types with a least steppable discrete unit: Integral types, date/time types etc. |
|
непрерывные типы |
типы с (теоретически) бесконечно большим количеством элементов имеют два значения. |
Table 1.13. Synopsis Functions and Overloads
ТТ |
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
---|---|---|---|---|---|
< |
1 |
1 |
1 |
1 |
1 |
< |
A |
1 |
1 |
||
< |
A |
1 |
1 |
||
< |
1 |
1 |
1 |
1 |
|
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
|
1 |
1 |
1 |
1 |
|
< |
1 |
1 |
1 |
1 |
1 |
|
|||||
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
1 |
1 |
|
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
1 |
1 |
|
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
|||
|
1 |
1 |
|||
< |
1 |
1 |
|||
|
1 |
||||
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
1 |
1 |
1 |
1 |
|
< |
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
||
< |
1 |
1 |
1 |
1 |
|
|
1 |
1 |
|||
< |
2 |
2 |
|||
|
|||||
|
1 |
||||
< |
1 |
1 |
|||
< |
1 |
1 |
|||
< |
1 |
||||
|
1 |
1 |
1 |
||
|
1 |
1 |
1 |
||
< |
1 |
1 |
1 |
||
< |
1 |
1 |
1 |
||
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
|||||
< |
|||||
< |
|||||
< |
|||||
< |
|||||
|
|||||
|
|||||
< |
|||||
|
|||||
|
|||||
|
|||||
< |
|||||
< |
1 |
||||
|
1 |
||||
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
|||||
|
|||||
|
|||||
|
|||||
|
|||||
|
1 |
||||
|
1 |
||||
|
1 |
1 |
1 |
1 |
|
< |
1 |
1 |
1 |
1 |
|
< |
|||||
< |
|||||
< |
1 |
1 |
1 |
1 |
|
< |
1 |
1 |
1 |
1 |
|
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
|||||
|
|||||
|
|||||
< |
|||||
< |
|||||
|
|||||
< |
|||||
< |
|||||
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
2 |
2 |
2 |
2 |
|
< |
2 |
2 |
2 |
2 |
|
< |
2 |
2 |
2 |
2 |
|
< |
2 |
2 |
2 |
2 |
|
< |
2 |
2 |
2 |
2 |
|
|
2 |
2 |
2 |
2 |
|
|
2 |
2 |
2 |
2 |
|
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
2 |
2 |
|||
|
2 |
2 |
|||
|
2 |
2 |
|||
< |
2 |
2 |
|||
интервалыинтервалы [ORIG_END] --> |
Интервал |
Интервал |
элемент [ORIG_END] --> |
Элемент |
|
< |
1 |
1 |
1 |
1 |
1 |
Многие, но не все функции интерваловiclперечислены в таблице выше. Некоторые конкретные функции кратко изложены в следующей таблице. Для группы конструктивных функций заполнителиdобозначают дискретные типы доменов иcобозначают непрерывные типы доменов<T::domain_type
>для интервала_типа<T
>и типы аргументов<P
>.
Table 1.14. Additional interval functions
ТТ |
Дискретный |
непрерывный |
right_open |
Left_open |
|
Открытый |
---|---|---|---|---|---|---|
Interval bounds |
Динамика |
Динамика |
статический |
статический |
статический |
статический |
Form |
асимметричный |
асимметричный |
Симметричный |
Симметричный |
||
< |
||||||
< |
||||||
< |
||||||
< |
||||||
< |
||||||
< |
||||||
< |
||||||
< |
||||||
< |
||||||
< |
1 |
1 |
1 |
1 |
1 |
1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
|
1 |
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
1 |
1 |
1 |
< |
1 |
1 |
1 |
1 |
1 |
1 |
Итераторы наинтервальных конайнерах, которые упоминаются в разделеИтерациейтаблицы синопсиса функций являютсясегментные итераторы. Они раскрывают более конкретный аспект реализации, из которого абстрагируется фундаментальный аспект. Итерация по сегментам происходит быстро, по сравнению с итерацией по элементам, особенно если интервалы большие. Но если мы хотим рассматривать наши интервальные контейнеры как контейнеры элементов, которые можно использовать с помощью std::algoritms, нам нужно повторить элементы.
Итерация элементов...
domain_types
>.С другой стороны, иногда может потребоваться итерация через интервальные контейнеры на уровне элементов, если у вас есть некоторый интерфейс, который работает для<std::SortedAssociativeContainers
>элементов, и вам нужно быстро использовать его с интервальным контейнером. Принятие более низкой производительности может быть менее беспокойным, чем настройка всего интерфейса для сегментации.
![]() |
Caution |
---|---|
Поэтому мы советуем вам выбирать итерацию элементов через интервальные контейнерыразумно. Не используйте итерацию элементовпо умолчанию или обычно. Всегда старайтесь достичь результатов с помощью глобальных функций или операторов пространства имен (предпочтительно, в неположенных версиях) или итерации по сегментам в первую очередь. |
Статья Function Synopsis раздела Chapter 1. Boost.Icl Interface может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |