![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
SubtractionBoost , Chapter 1. Boost.Icl , Function Reference
|
Вычитание |
интервалы |
интервал |
элемент | ||
---|---|---|---|---|---|
| |||||
T&
subtract(T&,
const P&) | e | ||||
T&
operator -=(T&,
const P&) | eiS | eiSbpM | |||
T operator
- (T,
const P&) | eiS | eiSbpM | |||
T left_subtract(T, const
T&) | |||||
T right_subtract(T, const
T&) |
Функции и операторы, реализующие Вычитание на объектах icl приведены в таблице выше.
Описание вычитания | |
---|---|
Sets | Вычитание в Sets Разница в наборе |
| Вычитание на Картах реализует функцию Разница карт, аналогичную функции Разница наборов. Если при вычитании пары значений элемента Подробнее о Вычитаемость карт и связанных с ними смысловые вопросы по ссылкам. |
Допустимые комбинации типов для функций вычитания можно резюмировать в таблице перегрузка ниже:
// overload table for T\P| e i b p T& T::subtract(const P&) ---+-------- T& subtract(T&, const P&) s | s m | m S | S S M | M M
Следующая таблица содержит характеристики сложности для subtract
.
Table 1.24. Time Complexity for function subtract on icl containers
|
тип домена |
интервал |
domain |
интервал |
---|---|---|---|---|
O(log n) | ||||
O(log n) | O(log n) | |||
O(log n) | amortized | |||
interval_maps | O(log n) | O(n) | O(log n) | O(n) |
Как представлено в таблицах перегрузки для оператора -=
для вычитания предусмотрено больше комбинаций типов, чем для сложения.
// 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 M M M M M
Вычитание обеспечивает обратную операцию добавления для этих перегрузок,
// Reverse addition -= | e b s m -= | e i b p S M ---+-------- ---+------------ s | s s S | S S S m | m m M | M M M
и вы можете удалить части icl::maps
или interval_maps
, используя ключевые значения, интервалы или элементные или интервальные наборы, используя эти перегрузки:
// Erasure by key objects -= | e b s m -= | e i b p S M ---+-------- ---+------------ s | s s S | S S S m | m m M | M M M
В наборах обе функциональные группы падают вместе как Разница в наборах.
Характеристики сложности операций вычитания inplace приведены в следующих таблицах, где
n = iterative_size(y); m = iterative_size(x); //if P is a container type
Table 1.26. Time Complexity for inplace Subtraction on interval containers
|
тип домена |
интервал |
domain |
интервал |
интервал | |
---|---|---|---|---|---|---|
интервал_множества | O(log n) | amortized | O(m log(n+m)) | |||
интервал_maps | O(log n) | amortized | O(log n) | O(n) | O(m log(n+m)) | O(m log(n+m)) |
Допустимые перегрузки для инфикса subtraction operator -
, который является некоммутативной операцией, приведены следующей таблицей перегрузок.
// overload tables for - | e b s m - | e i b p S M T operator - (T, const P&) ---+-------- ---+------------ s | s s S | S S S m | m m m m M | M M M M M M
Типы |
Описание | |
---|---|---|
| i |
subtract right_over = left_subtract(right, left_minuend); ... d) : right ... c) : left_minuend [c d) : right_over
|
| i | right_minuend
от интервала left
на правой стороне.
left_over = right_subtract(left, right_minuend); [a ... : left [b ... : right_minuend [a b) : left_over left_over = right_subtract(left, right_minuend); [a ... : left [b ... : right_minuend [a b) : left_over [ORIG_END] --> |
See also . . .
Back to section . . .
<> |
Статья Subtraction раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Function Reference ::
реклама |