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

Subtraction

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

Вычитание

интервалы

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

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

T& T::subtract(constP&)

ei

bp<13

b

T& subtract(T&, const P&)

ei

bp<13

e

b

T& operator -=(T&, const P&)

eiS

eiSbpM

e

bm

T operator - (T, const P&)

eiS

eiSbpM

e

bm

T left_subtract(T, const T&)

T right_subtract(T, const T&)

Функции и операторы, реализующие Вычитание на объектах icl приведены в таблице выше.

Описание вычитания

Sets

Вычитание в Sets Разница в наборе

Карты

Вычитание на Картах реализует функцию Разница карт, аналогичную функции Разница наборов. Если при вычитании пары значений элемента (k,v) на карте уже находится ключ k, функция вычитания распространяется на связанное значение. На связанном значении выполняется агрегация, которая обращает вспять действие соответствующей функции сложения.

Подробнее о Вычитаемость карт и связанных с ними смысловые вопросы по ссылкам.

Допустимые комбинации типов для функций вычитания можно резюмировать в таблице перегрузка ниже:

// 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

T(const&)
T&T&,const&

тип домена

интервал
тип

domain
mapping
type

интервал
отображение
тип

std::set

O(log n)

icl::map

O(log n)

O(log n)

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

O(log n)

amortized
O(log n)

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.25. Time Complexity for inplace Subtraction on element containers

T& оператор-= (T&, констP&;

тип домена

domain
mapping
type

std::set

icl::map

std::set

O(log n)

O(m log n)

icl::map

O(log n)

O(log n)

O(m log n)

O(m log n)


Table 1.26. Time Complexity for inplace Subtraction on interval containers

T& оператор-= (T&, констP&;

тип домена

интервал
тип

domain
mapping
type

интервал
отображение
тип

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

интервал_множества

O(log n)

amortized
O(log n)

O(m log(n+m))

интервал_maps

O(log n)

amortized
O(log n)

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

Типы

Описание

T left_subtract(T right, const T& left_minuend)

i

subtract left_minuend from the interval right on it's left side.

right_over = left_subtract(right, left_minuend);
...      d) : right
... c)      : left_minuend
     [c  d) : right_over

T right_subtract(T left, const T& right_minuend

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 . . .

Addition

[ORIG_END] -->

Измерение

[ORIG_END] -->

Back to section . . .

<>Function Synopsis

[ORIG_END] -->
Интерфей

[ORIG_END] -->

PrevUpHomeNext

Статья Subtraction раздела 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:03:21/0.0092790126800537/0