итераторначинают;
эффекты: Возвращает итератор, указывающий на начало контейнера.
Сложность: Постоянная.
Бросает: Ничего.
const_iteratorначинаютконст;
Эффекты: Возвращает const_iterator, указывающий на начало контейнера.
Сложность: Постоянная.
Броски: Ничего.
const_iteratorcbeginconst;
Эффекты: Возвращает const_iterator, указывающий на начало контейнера.
Сложность: Постоянная.
Броски: Ничего.
итераторконец;
эффекты: Возвращает итератор, указывающий на конец контейнера.
Сложность: Постоянная.
Бросает: Ничего.
const_iteratorendconst;
Эффекты: Возвращает const_iterator, указывающий на конец контейнера.
Сложность: Постоянная.
Броски: Ничего.
const_iteratorcendconst;
Эффекты: Возвращает const_iterator, указывающий на конец контейнера.
Сложность: Постоянная.
Бросает: Ничего.
reverse_iteratorrbegin;
Эффекты: Возвращает обратный_iterator, указывающий на начало обратного контейнера.
Сложность: Постоянная.
Броски: Ничего.
const_reverse_iteratorrbeginconst;
Эффекты: Возвращает const_reverse_iterator, указывающий на начало обратного контейнера.
Сложность: Постоянная.
Броски: Ничего.
const_reverse_iteratorcrbeginconst;
Эффекты: Возвращает const_reverse_iterator, указывающий на начало обратного контейнера.
Сложность: Постоянная.
Броски: Ничего.
reverse_iteratorrend;
Эффекты: Возвращает обратный_iterator, указывающий на конец обратного контейнера.
Сложность: Постоянная.
Броски: Ничего.
const_reverse_iteratorrendconst;
: Возвращает const_reverse_iterator, указывающий на конец обратного контейнера.
Сложность: Постоянная.
Броски: Ничего.
const_reverse_iteratorcrendconst;
: Возвращает const_reverse_iterator, указывающий на конец обратного контейнера.
Сложность: Постоянная.
Броски: Ничего.
итераторкорень;
эффекты: Возвращает итератор, указывающий на корневой узел контейнера или конец(), если он не присутствует.
Сложность: Постоянная.
Броски: Ничего.
const_iteratorrootconst;
Эффекты: Возвращает const_iterator, указывающий на корневой узел контейнера или кенд(), если он отсутствует.
Сложность: Постоянная.
Броски: Ничего.
const_iteratorcrootconst;
Эффекты: Возвращает const_iterator, указывающий на корневой узел контейнера или кенд(), если он отсутствует.
Сложность: Постоянная.
Броски: Ничего.
key_comparekey_compconst;
Эффекты: Возвращает объект key_compare, используемый контейнером.
Сложность: Константа.
Броски: Если бросит key_compare копи-конструктор.
value_comparevalue_compconst;
Эффекты: Возвращает объект value_compare, используемый контейнером.
Сложность: Постоянная.
Броски: Если value_compare копи-конструктор бросает.
boolemptyconst;
Эффекты: Возвращается, если контейнер пуст.
Сложность: Константа.
Броски: Ничего.
size_typesizeconst;
Эффекты: Возвращает количество элементов, хранящихся в контейнере.
Сложность: Линейный к элементам, содержащимся в *это, если опция постоянного размера отключена. Постоянное время иначе.
Бросает: Ничего.
voidswaptreap_multiset&other;
Эффекты: Изменяет содержание двух кранов.
Сложность: Постоянная.
Бросает: Если сравнительный своп функтора бросает вызов.
шаблон<имя типаCloner,имя типаDisposer>voidconsttreap_multiset&src,Клонерклон,Диспозитор;
: Диспозитор::оператор()(указатель) не должен бросать. Клонер должен уступить узлам, эквивалентным исходным узлам.
Эффекты: Стирает все элементы из *этого вызывающего Диспозитора::оператор()(указатель), клонирует все элементы из src, вызывающего Клонера::оператор()(const_reference) и вставляет их на *это. Копирует предикат из исходного контейнера.
Если клонер бросает, все клонированные элементы несвязаны и расположены, вызывая Диспозитор::оператор()(указатель).
Сложность: Линейный стертый плюс вставленные элементы.
Бросок: Если клонер бросает или предикат копирования, задание бросает. Базовая гарантия.
шаблон<имя типа,имя типа>voidклонtreap_multiset&&src,клон]
Требует: Диспетчер::оператор()(указатель) не должен бросать. Клонер должен уступить узлам, эквивалентным исходным узлам.
Эффекты: Стирает все элементы из *этого вызывающего Диспозитора::оператор()(указатель), клонирует все элементы из src, вызывающего Клонера::оператор()(ссылка) и вставляет их на *это. Копирует предикат из исходного контейнера.
Если клонер бросает, все клонированные элементы несвязаны и расположены, вызывая Диспозитор::оператор()(указатель).
Сложность: Линейный стертый плюс вставленные элементы.
Бросок: Если клонер бросает или предикат копирования, задание бросает. Базовая гарантия.
итератортоп;
Эффекты: Возвращает итератор, указывающий на наиболее приоритетный объект крана.
Сложность:
Бросок: Ничего.
const_iteratortopconst;
Эффекты: Возвращает const_iterator, указывающий на объект с наивысшим приоритетом трэпа..
Сложность:
Бросок: Ничего.
const_iteratorctopconst;
Эффекты: Возвращает const_iterator, указывающий на объект с наивысшим приоритетом трэпа..
Сложность:
Бросок: Ничего.
reverse_iteratorrtop;
: Возвращает обратный_итератор, указывающий на объект с наивысшим приоритетом обратного трапа.
Сложность:
Бросок: Ничего.
const_reverse_iteratorrtopconst;
: Возвращает const_reverse_iterator, указывая на наивысший приоритетный объект обратного рывка.
Сложность:
Бросок: Ничего.
const_reverse_iteratorcrtopconst;
Эффекты: Возвращает const_reverse_iterator, указывающий на объект с наивысшим приоритетом обратного трапа.
Сложность:
Бросок: Ничего.
priority_comparepriority_compconst;
Эффекты: Возвращает const_reverse_iterator, указывающий на объект с наивысшим приоритетом обратного трапа.
Сложность: Постоянная.
Броски: Ничего.
итераторвставитьэталонноезначение;
Требует: Значение должно быть lvalue
Эффекты: Вставляет значение в контейнер перед верхней границей.
Сложность: Средняя сложность для вставочного элемента является наиболее логарифмической.
Броски: Если внутренние функции key_compare или priority_compare бросятся. Сильная гарантия.
Примечание: Не влияет на достоверность итераторов и ссылок. Копировальными конструкторами не называются.
итераторвставкаconst_iteratorподсказка,ссылказначение;
Требует: Значение должно быть значением l, а «наконечник» должен быть действительным итератором.
Эффекты: Вставляет х в контейнер, используя «наконечник» в качестве подсказки, где он будет вставлен. Если «подсказка» находится в верхнем узле, вставка занимает постоянное время (два сравнения в худшем случае)
Сложность: Логарифмическое вообще, но это амортизированное постоянное время, если t вставлено непосредственно перед намёком.
Броски: Если внутренние функции key_compare или priority_compare бросятся. Сильная гарантия.
Примечание: Не влияет на достоверность итераторов и ссылок. Копировальными конструкторами не называются.
шаблон<имя типаИтератор>пустотавставкаИтераторb,Итераторe;
Требует: Ссылочный итератор должен давать значение l типа value_type.
Эффекты: Вставляет каждый элемент диапазона в контейнер перед верхней границей ключа каждого элемента.
Сложность: Диапазон вставки, как правило, O(N * log(N)), где N - размер диапазона. Однако она линейна в N, если диапазон уже отсортирован по key_comp().
Бросок: Если внутренние функции key_compare или priority_compare бросятся. Сильная гарантия.
Примечание: Не влияет на достоверность итераторов и ссылок. Копировальными конструкторами не называются.
итераторвставка_доconst_iteratorpos,эталонноезначение;
Требует: Значение должно быть значением l, "pos" должно быть действительным итератором (или концом) и должно быть датчиком значения после вставки в соответствии с предикатом
: Вставляет х в контейнер перед «по».
Сложность: Постоянное время.
Бросок: Если выполняется внутренняя функция priority_compare. Сильная гарантия.
Примечание: Эта функция не проверяет предварительные условия, поэтому, если «pos» не является преемником инварианта упорядочивания контейнера «value», он будет нарушен. Это низкоуровневая функция, которая используется только для повышения производительности продвинутыми пользователями.
voidpush_backэталонноезначение;
Требует: Значение должно быть lvalue, и оно должно быть не меньше, чем наибольший вставленный ключ
Эффекты: Вставьте x в контейнер в последнем положении.
Сложность: Постоянное время.
Бросок: Если выполняется внутренняя функция priority_compare. Сильная гарантия.
Примечание: Эта функция не проверяет предварительные условия, поэтому, если значение меньше наибольшего инварианта упорядочивания вставленного ключа, оно будет нарушено. Эта функция немного более эффективна, чем использование «insert_before». Это низкоуровневая функция, которая используется только для повышения производительности продвинутыми пользователями.
voidpush_frontэталонноезначение;
Требует: Значение должно быть значением l, и оно не должно быть больше минимального вставленного ключа
Эффекты: Вставьте x в контейнер в первом положении.
Сложность: Постоянное время.
Броски: Если выполняется внутренняя функция priority_compare. Сильная гарантия.
Примечание: Эта функция не проверяет предварительные условия, поэтому, если значение больше минимального инварианта вставленного ключевого контейнера будет нарушено. Эта функция немного более эффективна, чем использование «insert_before». Это низкоуровневая функция, которая используется только для повышения производительности продвинутыми пользователями.
итераторстираетconst_iteratori;
Эффекты: Стирает элемент, на который указывает i.
Сложность: Средняя сложность для элемента стирания — постоянное время.
Бросает: если бросит внутренняя функция priority_compare. Сильная гарантия.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы. Деструкторы не называются.
итераторстираетconst_iteratorb,const_iteratore;
Эффекты: Уничтожает диапазон, указанный на b-конце e.
Сложность: Средняя сложность для диапазона стирания составляет максимум O(log(size()+N)), где N - число элементов в диапазоне.
Бросает: если бросит внутренняя функция Priority_compare. Сильная гарантия.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы. Деструкторы не называются.
size_typeeraseconstkey_type&key];
Эффекты: Стирает все элементы с заданным значением.
Возвращение: Количество стертых элементов.
Сложность: O(log(size() + N.)
Бросает: если бросит внутренняя функция приоритет_сравнение. Сильная гарантия.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы. Деструкторы не называются.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>размер_typeстираетконст&ключ,KeyTypeKeyCompare;
: Стирает все элементы заданным ключом. согласно сравнительным функторам «комп.»
Возвращение: Число стертых элементов.
Сложность: O(log(size() + N.)
Бросает: если бросит внутренняя функция Priority_compare. Эквивалентная гарантияпри (beg!= end) стирании (beg++);
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы. Деструкторы не называются.
шаблон<имя типаДиспетчер>итераторerase_and_disposeconst_iteratori,диспетчер;
Требует: Диспетчер::оператор()(указатель) не должен бросать
Эффекты: Стирает элемент, на который указывает i. Утилизатор::оператор()(указатель) вызывается для удаленного элемента.
Сложность: Средняя сложность для элемента стирания — постоянное время.
Бросает: если бросит внутренняя функция priority_compare. Сильная гарантия.
Примечание: Инвалидирует итераторы на стертые элементы.
шаблон<>итераторerase_and_disposeconst_iteratorb,const_iteratore,;
Требует: Диспетчер::оператор()(указатель) не должен бросать
Эффекты: Уничтожает диапазон, указанный на b-конце e. Утилизатор::оператор()(указатель) вызывается для удаленных элементов.
Сложность: Средняя сложность для диапазона стирания составляет максимум O(log(size()+N)), где N - число элементов в диапазоне.
Бросает: если бросит внутренняя функция Priority_compare. Сильная гарантия.
Примечание: Инвалидирует итераторы на стертые элементы.
шаблон<TypenameDisposer>size_typeerase_and_disposeconstkey_type&ключ,disposer;
Требует: Disposer::operator()(pointer) не следует бросать.
Эффекты: Стирает все элементы с заданным значением. Диспозитор::оператор()(указатель) вызывается для удаленных элементов.
Возвращение: Количество стертых элементов.
Сложность: O(log(size() + N.)
Броски: если функция приоритета_сравнить бросает, то слабая гарантия и куча инвариантов нарушаются. Самое безопасное — очистить или уничтожить контейнер.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы. Деструкторы не называются.
шаблон<имя типаимя типаKeyTypeKeyCompare,имя типаимя типаразмер_типудаление_и_утилизацияконст&ключKeyTypeKeyCompareкомп,утилизатор
Требует: Диспетчер::оператор()Эффекты[20 Стирает все элементы заданным ключом. по сравнению с функтором «комп». Диспозитор::оператор()(указатель) вызывается для удаленных элементов.Возвращение: Число стертых элементов.
Сложность: O(log(size() + N).
Бросает: Если функция priority_compare бросает, то слабая гарантия и куча инвариантов нарушаются. Самое безопасное — очистить или уничтожить контейнер.
Примечание: Инвалидирует итераторы на стертые элементы.
пустотаясно;
Эффекты: Стирает все элементы.
Сложность: Линейный по количеству элементов на контейнере. Если это безопасный режим или авто-разъединить значение_тип. Постоянное время иначе.
Бросок: Ничего.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы. Деструкторы не называются.
шаблон<имя типаУтилизатор>пустотаясно_и_утилизировать;
Эффекты: Стирает все элементы, вызывающие диспергатор (p), для каждого узла, который должен быть удален.Сложность: Средняя сложность составляет максимум O(log(size() + N)), где N - число элементов в контейнере.
Бросок: Ничего.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы. Звонки N раз для удаления функтора.
размер_типподсчетконстключ_тип&ключ]конст;
Эффекты: Возвращает число содержащихся элементов с заданным значением
Сложность: Логарифмическое к числу содержащихся элементов плюс линейное к числу объектов с заданным значением.
Броски: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>размер_типколичествоconstKeyType&ключ,KeyTypeKeyComparecomp)const;
Требует: Ключ является значением, таким, что*это
разделено по отношению к comp(nk, key) и !comp(key, nk), с Comp(nk, key), подразумевающим !comp(key, nk), и nk ключ_тип значения_type вставлен в*это
.
Эффекты: Возвращает число содержащихся элементов с заданным ключом
Сложность: Логарифмическое к числу элементов, содержащихся плюс линейное к числу объектов с заданным ключом.
Броски: Еслиброски
.
итераторнижний_связанныйконстключ_тип&ключ;
Эффекты: Возвращает итератор к первому элементу, ключ которого не меньше k или конца (), если этот элемент не существует.
Сложность: Логарифмический.
Броски: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>итераторниже_boundconst&ключ,KeyTypeKeyCompare
ЭффектыВозвращает итератор к первому элементу, ключ которого не меньше k или конца (), если этот элемент не существует.Сложность: Логарифмический.
Бросок: Еслиключ_сравните
бросок.
const_iteratorlower_boundconstkey_type&key]const;
: Возвращает итератор к первому элементу, ключ которого не меньше k или конца (), если этот элемент не существует.
Сложность: Логарифмический.
Броски: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>const_iteratorнижний_boundconstKeyType&ключ,KeyTypeKeyComparecomp)const;
Эффекты: Возвращает итератор к первому элементу, ключ которого не меньше k или конца(), если этот элемент не существует.
Сложность: Логарифмический.
Бросок: Еслиключ_сравните
бросок.
итераторверхний_связанныйконстключ_тип&ключ;
Эффекты: Возвращает итератор к первому элементу, ключ которого больше k или конца(), если этот элемент не существует.
Сложность: Логарифмический.
Бросок: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>итераторверхний_связанныйконстKeyType&ключ,KeyTypeKeyComparecomp);
Требует: Ключ является значением, таким, что*это
разделено относительно !comp(ключ, nk), с nk ключ_тип значения_тип вставлен в*это
.
Эффекты: Возвращает итератор к первому элементу, чей ключ больше k согласно comp или end(), если этот элемент не существует.
Сложность: Логарифмическая.
Броски: Еслиброски
.
const_iteratorupper_boundconstkey_type&key]const;
Эффекты: Возвращает итератор к первому элементу, ключ которого больше k или конца(), если этот элемент не существует.
Сложность: Логарифмический.
Броски: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>const_iteratorверхний_boundconst&ключKeyTypeKeyCompareconstconst
Требует: Ключ является значением, таким, что*это
разделено относительно !comp(ключ, nk), с nk ключ_тип значения_тип вставлен в*это
.Эффекты: Возвращает итератор к первому элементу, чей ключ больше k согласно comp или end(), если этот элемент не существует.
Сложность: Логарифмический.
Броски: Есливыбросить
.
итераторнайдитеconstkey_type&key];
Эффекты: Найден итератор к первому элементу, ключ которого k или конец(), если этот элемент не существует.
Сложность: Логарифмический.
Бросок: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>итераторнайдитеconstKeyType&ключ,]
Требует: Ключ является значением, таким, что*это
разделено по отношению к comp(nk, key) и !comp(key, nk), с Comp(nk, key), подразумевающим !comp(key, nk), и nk ключ_тип значения_type вставлен в*это
.
Эффекты: Найден итератор первого элемента, ключом которого является k или конец(), если этот элемент не существует.
Сложность: Логарифмический.
Броски: Еслиброски
.
const_iteratorнайтиconstkey_type&ключ]const;
Эффекты: Найден итератор к первому элементу, ключ которого k или конец(), если этот элемент не существует.
Сложность: Логарифмический.
Броски: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>const_iteratorfindconstKeyType&ключ,KeyTypeKeyComparecompconst
Требует: Ключ - это такое значение, что*это
разделено по отношению к comp(nk, key) и !comp(key, nk), причем comp(nk, key) подразумевает !comp(key, nk), и nk ключ_тип значения_type вставлен в*это
.
Эффекты: Найден итератор первого элемента, ключом которого является k или конец(), если этот элемент не существует.
Сложность: Логарифмический.
Броски: Еслиброски
.
std::пара<итератор,итератор>равный_диапазонконстключ_тип&ключ;
Эффекты: Найден диапазон, содержащий все элементы, ключ которых k или пустой диапазон, который указывает положение, в котором эти элементы были бы, если бы у них не было элементов с ключом k.
Сложность: Логарифмический.
Броски: Еслиключ_сравните
бросок.
шаблон<имя типаKeyType,имя типаKeyTypeKeyCompare>std::пара<итератор,итератор>равный_диапазонконст&ключ,ключKeyTypeKeyComparecomp);
Требует: Ключ является значением, таким, что*это
разделено по отношению к comp(nk, key) и !comp(key, nk), с Comp(nk, key), подразумевающим !comp(key, nk), с nk ключ_тип значения_type вставлен в*это
.
Эффекты: Найден диапазон, содержащий все элементы, ключ которых k или пустой диапазон, который указывает положение, в котором эти элементы были бы, если бы у них не было элементов с ключом k.
Сложность: Логарифмический.
Бросок: Еслиброски
.
std::pair<const_iterator,const_iterator>equal_rangeconst&const;
: Найден диапазон, содержащий все элементы, ключ которых k или пустой диапазон, который указывает положение, в котором эти элементы были бы, если бы у них не было элементов с ключом k.
Сложность: Логарифмический.
Бросает: Еслиключ_сравните
бросок.
шаблон<имя типаKeyTypeимя типаKeyTypeKeyCompare>std::пара<const_iterator>const_iteratorconst_iterator>equal_rangeconst&ключ,ключключKeyTypeKeyComparecomp)const;
Требует: Ключ является значением, таким, что*это
разделено по отношению к comp(nk, key) и !comp(key, nk), с Comp(nk, key), подразумевающим !comp(key, nk), с nk ключ_тип значения_type вставлен в*это
.
Эффекты: Найден диапазон, содержащий все элементы, ключ которых k или пустой диапазон, который указывает положение, в котором эти элементы были бы, если бы у них не было элементов с ключом k.
Сложность: Логарифмический.
Броски: Есливыбросить
.
std::итераторитератор>ограниченный_диапазонключ_тип&ключ_типключ_типключ_тип&верхний_ключ,левый_замкнутый,правый_замкнутый;
требуетверхний_ключ
не предшествуетЕслинижний_ключ
эквивалентенверхний_ключ
[!key_comp()(верхний_ключ, нижний_ключ) && !key_comp()(нижний_ключ, верхний_ключ)], то ('left_closed' | | 'right_closed') должно быть ложным.Эффекты: Возвращает пару со следующими критериями:
первый = нижний_bound(lower_key) если левый_замкнут, верхний_bound(lower_key) иначе
второй = верхний_bound(upper_key) если правый_замкнут, нижний_bound(upper_key) иначе
: Логарифмический.
Броски: Еслиключ_сравните
бросок.
Примечание: Эта функция может быть более эффективной, чем вызов верхнего и нижнего пределов для нижнего и верхнего значений.
Примечание: Экспериментальная функция, интерфейс может измениться в будущих выпусках.
шаблон<имя типаKeyType>std::пара<итератор>итератор>ограниченный_диапазонконстконст&нижний_ключ&нижний_ключконстконстнижний_ключ&нижний_ключВерхний ключ
является значением, таким, что* это
разделено по отношению к !comp(upper_key, nk), если право_закрыто истинно, по отношению к Comp(nk, верхний_key) иначе.
верхний_ключ
не должен предшествоватьнижний_ключ
в соответствии с компом [comp(upper_key, lower_key) должен быть ложным]
Еслинижний_ключ
эквивалентенверхний_ключ
[!comp(upper_key, lower_key) && !comp(lower_key, upper_key)], то ("left_closed" | | "right_closed") должен быть ложным.
Эффекты: Возвращает пару со следующими критериями:
первый = нижний_bound(lower_key, comp) при левом_замкнутом, верхний_bound(lower_key, comp) в противном случае
второй = верхний_bound(upper_key, comp) при правом_замкнутом, нижний_bound(upper_key, comp) в противном случае
: Логарифмический.
Бросает: Есликомп
бросок.
Примечание: Эта функция может быть более эффективной, чем вызов top_bound и lower_bound для low_key и upper_key.
Примечание: Экспериментальная функция, интерфейс может измениться в будущих выпусках.
std::const_iteratorconst_iterator>&low_keykey_type&top_keyleft_closed,boolright_closed]const:upper_key
не должен предшествоватьlow_key
Еслиlow_key
эквивалентенupper_key [Эффекты: Возвращает пару со следующими критериями:
первый = нижний_bound(lower_key) если левый_замкнут, верхний_bound(lower_key) иначе
второй = верхний_bound(upper_key) если правый_замкнут, нижний_bound(upper_key) иначе
: Логарифмический.
Броски: Еслиkey_compare
бросок.
Примечание: Эта функция может быть более эффективной, чем вызов верхнего и нижнего пределов для нижнего и верхнего значений.
Примечание: Экспериментальная функция, интерфейс может измениться в будущих выпусках.
шаблонимя типаstd::пара<const_iterator>ограниченный_диапазон&]нижний_key&нижний_keyверхний_key&верхний_key,левый_закрытый,top_key
- это значение, такое, что* это
разделено по отношению к !comp(upper_key, nk), если право_closed истинно, по отношению к comp(nk, upper_key) иначе.
верхний_ключ
не должен предшествоватьнижний_ключ
в соответствии с компом [comp(upper_key, lower_key) должен быть ложным]
Еслинижний_ключ
эквивалентенверхний_ключ
[!comp(upper_key, lower_key) && !comp(lower_key, upper_key)], то ['left_closed' | | 'right_closed'] должен быть ложным.
Эффекты: Возвращает пару со следующими критериями:
первый = нижний_bound(lower_key, comp) при левом_замкнутом, верхний_bound(lower_key, comp) в противном случае
второй = верхний_bound(upper_key, comp) при правом_замкнутом, нижний_bound(upper_key, comp) в противном случае
: Логарифмический.
Бросает: Еслиброски
.
Примечание: Эта функция может быть более эффективной, чем вызов top_bound и lower_bound для low_key и upper_key.
Примечание: Экспериментальная функция, интерфейс может измениться в будущих выпусках.
итераторитератор_toэталонноезначение;
Требует: Значение должно быть lvalue и должно быть в наборе соответствующего типа. В противном случае поведение не определено.
Эффекты: Возврат: действительный итератор i, относящийся к набору, который указывает на значение
Сложность: Постоянная.
Бросает: Ничего.
const_iteratoriterator_toconst_referenceconst;
Требует: Значение должно быть lvalue и должно быть в наборе соответствующего типа. В противном случае поведение не определено.
Эффекты: Возврат: действительный const_iterator i, принадлежащий набору, который указывает на значение
Сложность:
Бросает: Ничего.
указательunlink_leftmost_without_rebalance
Эффекты: Отсоединяет самый левый узел контейнера.
Сложность: Средняя сложность — это постоянное время.
Бросает: Ничего.
Примечания: Эта функция разрушает контейнер, и контейнер может использоваться только для дополнительных вызовов unlink_leftmost_without_rebalance. Эта функция обычно используется для достижения поэтапного контролируемого разрушения контейнера.
пустотазамена_узлазамена_этого,ссылкана;
Требует: Заменить_это должен быть действительный итератор *это и с_это не должно быть вставлено в любой контейнер.
Эффекты: Заменяет замену_this в своем положении в контейнере с_this. Контейнер не нужно перебалансировать.
Сложность: Константа.
Броски: Ничего.
Примечание: Эта функция будет нарушать инварианты заказа контейнера, если с_это не эквивалентно *заменить_это в соответствии с правилами заказа. Эта функция быстрее, чем стирание и вставка узла, поскольку не требуется перебалансировки или сравнения.
пустотаудаление_узлассылказначение;
Эффекты: удаление "значения" из контейнера.
Бросок: Ничего.
Сложность: Логарифмическое время.
Примечание: Эта статическая функция может использоваться только в непостоянных контейнерах с размером времени, которые имеют функторы сравнения без состояния.
Если пользователь называет эту функцию контейнером с постоянным размером времени или функтором сравнения состояния, будет выпущена ошибка компиляции.
шаблон<класс...Варианты2>пустотасливаютсяtreap_multiset<T,>&
: Варианты контейнера "источник" могут отличаться только функцией сравнения от *этого.
Эффекты: Попытки извлечь каждый элемент из источника и вставить его в объект сравнения *это. Если в элементе есть ключ, эквивалентный ключу элемента из источника, то этот элемент не извлекается из источника.
Посткондиционер: Указатели и ссылки на переданные элементы источника относятся к тем же элементам, но как к членам этого. Итераторы, относящиеся к переданным элементам, будут продолжать ссылаться на их элементы, но теперь они ведут себя как итераторы в это, а не в источник.
Броски: Ничего, если объект сравнения не бросит.
Сложность: N log(a.size() + N) (N имеет значение source.size())
шаблон<класс...Варианты2>пустотаслияниеtreap_set<TВарианты2>&источник;
ТребуетТребует[39 Варианты контейнера "источник" могут отличаться только функцией сравнения от *этого.
Эффекты: Попытки извлечь каждый элемент из источника и вставить его в объект сравнения *это. Если в элементе есть ключ, эквивалентный ключу элемента из источника, то этот элемент не извлекается из источника.
Посткондиционер: Указатели и ссылки на переданные элементы источника относятся к тем же элементам, но как к членам этого. Итераторы, относящиеся к переданным элементам, будут продолжать ссылаться на их элементы, но теперь они ведут себя как итераторы в это, а не в источник.
Броски: Ничего, если объект сравнения не бросит.
Сложность: N log(a.size() + N) (N имеет значение source.size())