![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Equivalences and OrderingsBoost , Chapter 1. Boost.Icl , Function Reference
|
Эквивалентность и порядок |
интервалы |
интервал |
интервал |
Элемент |
Элемент |
---|---|---|---|---|---|
Сегмент Заказ | |||||
< | 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 |
Типы | ||
---|---|---|
< | < |
Все операторы общего равенства и сравнения определены для всех объектовicl. Для всехконтейнеровоператоры сравнения реализуют лексикографическое равенство и лексикографическое сравнение, что зависит от равенства шаблонного параметра<Compare
>. Это включает в себя меньшее упорядочение на интервалах, которое может восприниматься как последовательность элементов между их нижней и верхней границей. Это обобщенное лексикогрифическое сравнение в интервалах также может быть определено следующим образом:
< | < | < |
Другие операторы могут быть выведены обычным способом | ||
< | < | < |
< | < | < |
< | < | < |
| < | < |
< | < | < |
Операторы равенства и сравнения определены для всехобъектов icl, но перегрузок между различными типами нет.
Контейнеры различной сегментации отличаются, даже если их элементы одинаковы:
split_interval_set<time> w1, w2; //Pseudocode w1 = {[Mon .. Sun)}; //split_interval_set containing a week w2 = {[Mon .. Fri)[Sat .. Sun)}; //Same week split in work and week end parts. w1 == w2; //false: Different segmentation is_element_equal(w1,w2); //true: Same elements contained
Сложностьявляетсялинейнойв<iterative_size
>более короткого контейнера для сравнения.
Последовательность элементовабстрагируется от способа, которым элементы интервальных контейнеров группируются в интервалы: этосегментация.
Таким образом, эти операции равенства и сравнения могут применяться в интервальных типах контейнеров. Допустимые комбинации типов кратко изложены в следующей таблице перегрузок.
// overload tables for bool is_element_equal (const T&, const P&) bool is_element_less (const T&, const P&) bool is_element_greater(const T&, const P&) element containers: interval containers: T\P| s m T\P| S1 S2 S3 M1 M3 ---+---- ---+--------------- s | 1 S1 | 1 1 1 m | 1 S2 | 1 1 1 S3 | 1 1 1 M1 | 1 1 M3 | 1 1
Для контейнеров элементов лексикографическое равенство и последовательное равенство элементов идентичны.
сложностьфункций сравнения последовательных элементовлинейнаяв<iterative_size
>более крупного контейнера.
Различное равенствоявляется предикатом равенства, доступным для<icl::maps
>и<interval_maps
>. Это верно, если две карты являются последовательными равными элементами, за исключением пар значений, ассоциированные значения которых являются элементами идентичности.
Сложностьявляется линейной в<iterative_size
>более крупного контейнера для сравнения.
See also . . .
Back to section . . .
Статья Equivalences and Orderings раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Function Reference ::
реклама |