![]() |
![]() ![]() ![]() ![]() |
![]() |
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.
реклама |