![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
ContainednessBoost , Chapter 1. Boost.Icl , Function Reference
|
интервалы |
интервал |
элемент | |||
---|---|---|---|---|---|
|
1 |
1 |
1 |
1 | |
|
1 |
1 |
1 |
1 |
1 |
| eiS |
Эта группа функций относится ксодержитЭдность, которая должна быть фундаментальной дляers. Функция<contains
>перегружена. Он охватывает различные виды содержательности: содержащиеся элементы, сегменты и подконтейнеры.
О (...) |
Описание | |
---|---|---|
| O(1) |
Returns |
|
Returns | |
where |
n | |
m |
// overload tables for bool contains(const T& super, const P& sub) bool within(const P& sub, const T& super) element containers: interval containers: T\P| e b s m T\P| e i b p S M --------+--- --------+------- s | 1 1 S | 1 1 1 m | 1 1 1 1 M | 1 1 1 1 1 1
При этом они различны<boolcontains(constT&super,constP&sup)
>. Мы можем сгруппировать их в часть (1), которая проверяет, содержится ли элемент, сегмент или контейнертого же типав элементе или интервальном контейнере.
// (1) containedness of elements, segments or containers of same kind T\P| e b s m T\P| e i b p S M ---+-------- ---+------------ s | 1 1 S | 1 1 1 m | 1 1 M | 1 1 1
и другую часть (2), которая проверяет содержаниеключевых объектов, которые могут бытьэлементыинтервалыилинаборы.
// (2) containedness of key objects. T\P| e b s m T\P| e i b p S M ---+-------- ---+------------ s | 1 1 S | 1 1 1 m | 1 1 M | 1 1 1
(m::set_type
) может быть ключевой объект.
.
Для типа интервальной картыM, ключевым элементомM<::domain_type
>, интерваломM<::interval_type
>, а такжеинтервалом, установленным, могут бытьключевые объекты.
Характеристики сложности для функции<boolcontains(constT&super,constP&sub)const
>приведены в следующих таблицах, где
n = iterative_size(super); m = iterative_size(sub); //if P is a container type
Table 1.20. Time Complexity for functions contains and within on interval containers
Тип домена |
Тип интервала |
|
Интервал |
интервал | |||
---|---|---|---|---|---|---|---|
O(log n) |
O(log n) |
O(m log n) | |||||
separate_interval_set split_interval_set |
O(log n) | O(n) |
O(m log n) | ||||
interval_maps |
O(log n) |
O(log n) |
O(log n) |
O(log n) |
O(m log n) |
O(m log n) | |
O(log n) | O(n) |
O(log n) | O(n) |
O(m log n) |
O(m log n) |
Все перегрузки герметичности контейнеров в контейнерах
bool contains(const T& super, const P& sub) bool within(const P& sub, const T& super)
время:O(m log n). Если оба контейнера имеют одинаковые итеративные размеры, так чтом = nу нас самый худший случайO (n log n). Существует альтернативная реализация, которая имеетлинейнуюсложностьO(n+m). Выбрана логлайновая реализация, потому что она может быть быстрее, если аргумент контейнера мал. В этом случае логарифмическая реализация приближается к логарифмическому поведению, тогда как линейная реализация остается линейной.
Вернуться в раздел...
Статья Containedness раздела Chapter 1. Boost.Icl Function Reference может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Function Reference ::
реклама |