![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Symmetric DifferenceBoost , Chapter 1. Boost.Icl , Function Reference
|
Симметричные различия |
интервал |
интервал |
элемент |
элемент |
---|---|---|---|---|
< | ||||
< | ||||
< | ||||
< |
Функции и операторы, реализующиесимметричную разницунаобъектах icl, приведены в таблице выше.
Описание симметричных различий | |
---|---|
< | < |
< | < |
Симметрическая разницареализуется на интервальных контейнерах функцией<T&
flip(T&,constP&operand)
>.
flip(y,x)
Удаляет каждый элемент<y
>, если он содержится в<x
>. При этом не следует забывать о<x
>элементах, не содержащихся в<y
>. Для контейнеров icl флип также является авайлабелем в качестве мемберной функции<T&T::flip(constP&operand)
>.
Допустимые комбинации типов для функции члена<T&T::flip(constP&)
>можно кратко изложить втаблице перегрузокниже:
/* overload table for */ T\P| e i b p T& T::flip(const P&) ---+-------- T& flip(T&, const P&) s | s m | m S | S S M | M M
Следующая таблица содержит характеристики сложности для функций<flip
>.
Table 1.37. Time Complexity for member functions flip on icl containers
< |
Тип домена |
Тип интервала |
домен |
Интервал |
---|---|---|---|---|
O(log n) | ||||
< | O(log n) | |||
O(log n) | O(n) | |||
O(log n) | O(n) | |||
O(log n) | O(n) |
В приведенных ниже таблицах перегрузки приведены допустимые комбинации типов для<operator^=
>, которые реализуютсимметричную разницу.
// overload tables for element containers: interval containers: T& operator ^= (T&, const P&) ^= | e b s m ^= | e i b p S M ---+-------- ---+------------ s | s s S | S S S m | m m M | M M M
Характеристики сложности для операторов на местах, которые реализуютсимметричную разницу, приведены в следующих таблицах, где:
n = iterative_size(y); m = iterative_size(x); //if P is a container
Table 1.38. Time Complexity for inplace symmetric difference on element containers
< |
Тип домена |
домен |
std::set |
icl::map |
---|---|---|---|---|
O(log n) | O(m log n) | |||
< | O(log n) | O(log n) | O(m log n) | O(m log n) |
Table 1.39. Time Complexity for inplace symmetric difference on interval containers
< |
Тип домена |
Тип интервала |
домен |
Интервал |
интервал |
интервал |
---|---|---|---|---|---|---|
интервал_множества | O(log n) | O(n) | O(m log(n+m)) | |||
интервал_карты | O(log n) | O(n) | O(log n) | O(n) | O(m log(n+m)) | O(m log(n+m)) |
Для исправления симметричной разницы доступны следующие перегрузки:
// overload tables for element containers: interval containers: T operator ^ (T, const P&) ^ | e b s m ^ | e i b p S1 S2 S3 M1 M3 T operator ^ (const P&, T) ---+-------- ---+--------------------------- e | s e | S1 S2 S3 b | m i | S1 S2 S3 s | s s b | M1 M3 m | m m p | M1 M3 S1 | S1 S1 S1 S2 S3 S2 | S2 S2 S2 S2 S3 S3 | S3 S3 S3 S3 S3 M1 | M1 M1 M1 M3 M3 | M3 M3 M3 M3
Для устранения двусмысленностей между интервальными контейнерами в качестве результирующего типа выбираютболее тонкийконтейнерный тип.
See also . . .
Back to section . . .
Статья Symmetric Difference раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Function Reference ::
реклама |