![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
ErasureBoost , Chapter 1. Boost.Icl , Function Reference
|
Сокровище |
интервал |
интервал |
элемента |
элемент |
---|---|---|---|---|
| ei | |||
| ||||
| 1 | 1 | 1 | 1 |
| 1 | 1 | 1 | 1 |
Эффекты излучение реализовано erase
и >извлечение реализовано subtract и
оператор -=
идентичны для всех Set-types icl.
Для Map-types, erase
предоставляет stl семантику стирания в отличие от subtract
и operator -=
, которые осуществляют обобщенную вычитку, которая выполняет инверсные агрегации, если ключевые значения сталкиваются или ключевые интервалы.
Используя итераторы, можно стереть объекты или диапазоны объектов, на которые указывает итератор из icl Sets и Maps.
/* overload table for */ T\P| e i b p T& T::erase(const P&) ---+-------- T& erase(T&, const P&) s | s m | m S | S S M | M M
Следующая таблица содержит характеристики сложности для функции erase
на элементах и сегментах.
Table 1.31. Time Complexity for erasure of elements and segments on icl containers
|
домен |
интервал |
домен |
интервал |
---|---|---|---|---|
O(log n) | ||||
O(log n) |
O(log n) | |||
O(log n) |
amortized | |||
O(log n) |
O(n) |
O(log n) |
O(n) |
Как показано в таблицах перегрузки для функции inplace erase
ниже, доступно больше комбинаций типа для erasure, чем для insertion.
// overload tables for function element containers: interval containers: T& erase(T&, const P&) T\P| e b s m T\P| 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
Мы можем разделить эти перегрузки на две группы. Первая группа может называться обратная вставка.
/* (1) Reverse insertion */ T\P| e b s m T\P| e i b p S M ---+-------- ---+------------ s | s s S | S S S m | m m M | M M M
The second group can be viewed as an erasure by key objects
/* (2) Erasure by key objects */ T\P| e b s m T\P| e i b p S M ---+-------- ---+------------ s | s s S | S S S m | m m M | M M M
На картах обратный ввод (1) отличается от stl's стирать семантику, потому что пары значений удаляются только, если найден ключ и данные. Только излучение по ключевым объектам (2) работает, как функция стирания на stl's std::maps, которая проходит ключевая стоимость> в качестве аргумента.
На Sets обе функциональные группы объединяются как распределение .
Характеристики сложности для операций по удалению на месте приведены следующими таблицами, где
n = iterative_size(y); m = iterative_size(x); //if P is a container type
Table 1.33. Time Complexity for inplace erasure on interval containers
|
домен |
интервал |
домен |
интервал |
интервал |
интервал |
---|---|---|---|---|---|---|
interval_sets |
O(log n) |
amortized | O(m log(n+m)) | |||
интервал_карты |
O(log n) |
amortized |
O(log n) |
O(n) | O(m log(n+m)) | O(m log(n+m)) |
В следующей таблице показаны контейнеры icl, которые стираются с итераторами. Эраза на итераторах стирает всегда один значение
значение_type
для итератора, указывающего на него. Мы стираем
std::sets
icl::maps
interval_sets
иinterval_maps
Сокровища у итераторов |
интервал |
интервал |
элемента |
элемент |
---|---|---|---|---|
void T::erase(iterator
pos) | амортизированный O(1) | амортизированный O(1) | амортизированный O(1) | амортизированный O(1) |
|
O(k) |
O(k) |
O(k) |
O(k) |
Erasing by a single iterator need only amortized permanent time. [первый, паст]
имеет линейное время в количестве к
етераторов в диапазоне [первый, паста>>>>>>>>>>>>>>>>><55>>>>>>>>>>>>>>>>>>>>>>>>>>>><555>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><5555>>>>>>>>>>>.
См. также . .
[ORIG_BEGIN] [ORIG_END] --> |
<>Subtraction [ORIG_END] --> |
Back to section . . .
[ORIG_BEGIN] [ORIG_END] --> |
Статья Erasure раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Function Reference ::
реклама |