![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Sets and MapsBoost , Chapter 1. Boost.Icl , Concepts
|
Функция |
Вариант |
реализованный как |
---|---|---|
Пустой набор |
|
|
Соотношение подмножеств |
< |
|
equality |
|
|
set union |
вместо |
|
|
||
set difference |
вместо |
< |
< |
||
set intersection |
вместо |
|
|
Равенство на<Sets
>не реализуется как<operator==
>, поскольку<operator==
>используется для более сильного лексикографического равенства на сегментах, что учитывает сегментацию элементов.
Будучи моделями понятий<Set
>,<std::set
>и все<interval_sets
>осуществляют эти операции и подчиняются связанным с ними законам<Sets
>. См., например,алгебра множеств здесь.
<interval
>также рассматривается как набор элементов. В отношении представленного выше<Set
>понятия<interval
>реализуется понятие лишь частично. Причина этого в том, что сложение и вычитание не могут быть определены на<intervals
>. Два интервала<[1,2]
>и<[4,5]
>не могут быть добавлены кодному<interval
>. Иными словами,<intervals
>являются неполными w.r.t. союз и различие.<Interval_sets
>можно определить какзавершениеинтервалов для операций соединения и разности.
Когда мы заявляем, что сложение или вычитание не могут быть определены на интервалах, мы не рассматриваем такие вещи, как, например, интервальная арифметика, где эти операции могут быть определены, но с другой семантикой.
По фундаментальному аспекту<icl::map
>и все<interval_maps
>являются моделями понятия<Map
>. Поскольку<map
>является<setofpairs
>, мы пытаемся разработать<Map
>концепцию в соответствии с<Set
>концепцией выше.
Функция |
Вариант |
реализованный как |
---|---|---|
empty map |
|
|
Соотношение подмножеств |
|
|
equality |
|
|
map union |
вместо |
|
|
||
map difference |
вместо |
< |
|
||
map intersection |
вместо |
|
|
Как видно, на абстрактном ядре подписи понятий icl<Set
>и<Map
>идентичны, за исключением названия типа. При этом подписи идентичны Наборы действительных законов различны, что более подробно будет описано в разделах посемантике icl SetsиMaps. Эти семантические различия в основном основаны на реализации основных функций<add
>и<subtract
>для элементов и интервалов, которые снова служат для реализации<operator
+=
>и<operator
-=
>.
Статья Sets and Maps раздела Chapter 1. Boost.Icl Concepts может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
реклама |