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

Erasure

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::erase(const P&)

ei

e i b> p

e

b p

T& erase(T&, const P&)

e i S

e i S 3>b p>>> >M>>

e s

b m

void T::erase(iterator)

1

1

1

1

void T::erase(iterator,iterator)

1

1

1

1

Erasure

Эффекты излучение реализовано 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

T& T::erase(const P&)
T& erase(T&, constP>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><1>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

домен
тип

интервал
тип

домен
отображение
тип

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

std::set

O(log n)

icl::map

O(log n)

O(log n)

interval_sets

O(log n)

amortized
O(log n)

interval_maps

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

T& erase(T& y, const P& x>>

домен
тип

домен
отображение
тип

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.33. Time Complexity for inplace erasure on interval containers

T& erase(T& y, const P& x>>

домен
тип

интервал
тип

домен
отображение
тип

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

интервал

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

interval_sets

O(log n)

amortized
O(log n)

O(m log(n+m))

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

O(log n)

amortized
O(log n)

O(log n)

O(n)

O(m log(n+m))

O(m log(n+m))


В следующей таблице показаны контейнеры icl, которые стираются с итераторами. Эраза на итераторах стирает всегда один значение значение_type для итератора, указывающего на него. Мы стираем

Сокровища у итераторов

интервал

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

элемента

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

void T::erase(iterator pos)

амортизированный O(1)

амортизированный O(1)

амортизированный O(1)

амортизированный O(1)

void T::erase(iterator первый, iterator Паст>>

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

Function Synopsis

[ORIG_BEGIN]

[ORIG_END] -->

PrevUpHomeNext

Статья Erasure раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Function Reference ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 04:49:18/0.0057141780853271/0