![]() |
![]() ![]() ![]() ![]() |
![]() |
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_setsplit_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 ::
реклама |