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

Equivalences and Orderings

Boost , Chapter 1. Boost.Icl , Function Reference

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext

Эквивалентность и порядок

интервалы

интервал
Наборы

интервал
Карты

Элемент
наборы

Элемент
карты

Сегмент Заказ

<booloperator ==(constT&,const T&)>

1

1

1

1

1

<booloperator !=(constT&,const T&)>

1

1

1

1

1

<booloperator <(constT&,const T&)>

1

1

1

1

1

<booloperator >(constT&,const T&)>

1

1

1

1

1

<booloperator <=(constT&,const T&)>

1

1

1

1

1

<booloperator >=(constT&,const T&)>

1

1

1

1

1

Элемент Заказ

<boolis_element_equal(const T&, constP&)>

S

М

1

1

<boolis_element_less(const T&, constP&)>

S

М

1

1

bool is_element_greater(const T&, const P&)

S

М

1

1

Различное равенство

<boolis_distinct_equal(const T&, constP&)>

М

1

Типы

<x< y>

i

<x>начинается раньше<y>или, для равных начал<x>заканчивается раньше<y>

Все операторы общего равенства и сравнения определены для всех объектовicl. Для всехконтейнеровоператоры сравнения реализуют лексикографическое равенство и лексикографическое сравнение, что зависит от равенства шаблонного параметра<Compare>. Это включает в себя меньшее упорядочение на интервалах, которое может восприниматься как последовательность элементов между их нижней и верхней границей. Это обобщенное лексикогрифическое сравнение в интервалах также может быть определено следующим образом:

<x< y>

<:=>

<x>начинается раньше<y>или, для равных начал<x>заканчивается раньше<y>

.

Другие операторы могут быть выведены обычным способом

<x> y>

<:=>

<y< x>

<x<= y>

<:=>

<!(y <x)>

<x>= y>

<:=>

<!(x <y)>

x == y

<:=>

<!(x <y)&& !(y <x)>индуцированная эквивалентность

<x!= y>

<:=>

<!(x ==y)>

Операторы равенства и сравнения определены для всехобъектов 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 . . .


PrevUpHomeNext

Статья Equivalences and Orderings раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Function Reference ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:54:05/0.0099620819091797/1