- <
voidpush_back(referencevalue);
>Требуется: Значение должно быть значением l.
Эффекты: Вставьте значение в заднюю часть списка. Копирование конструкторов не называется.
Бросок: Ничего.
Сложность: Константа.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidpush_front(referencevalue);
>Требуется:
Эффекты: Вставляет значение в передней части списка. Копирование конструкторов не называется.
Бросок: Ничего.
Сложность: Постоянная.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidpop_back();
>Эффекты: Стирает последний элемент списка. Разрушители не называются.
Броски: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
template<typenameDisposer>voidpop_back_and_dispose(Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает последний элемент списка. Деструкторы не называются. Диспозитор::оператор()(указатель) вызывается для удаленного элемента.
Бросок: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы к стертому элементу.
- <
voidpop_front();
>Эффекты: Стирает первый элемент списка. Деструкторы не называются.
Бросок: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
template<typenameDisposer>voidpop_front_and_dispose(Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает первый элемент списка. Деструкторы не называются. Диспозитор::оператор()(указатель) вызывается для удаленного элемента.
Бросок: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы к стертому элементу.
- <
referencefront();
>Эффекты: Возвращает ссылку на первый элемент списка.
Бросок: Ничего.
Сложность: Постоянная.
- <
const_referencefront()const;
>Эффекты: Возвращает ссылку на первый элемент списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
referenceback();
>Эффекты: Возвращает ссылку на последний элемент списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
const_referenceback()const;
>Эффекты: Возвращает ссылку на последний элемент списка.
Бросок: Ничего.
Сложность: Постоянно.
- <
iteratorbegin();
>Эффекты: Возвращает итератор к первому элементу, содержащемуся в списке.
Бросок: Ничего.
Сложность: Постоянство.
- <
const_iteratorbegin()const;
>Эффекты: Возвращает const_iterator к первому элементу в списке.
Бросок: Ничего.
Сложность: Постоянно.
- <
const_iteratorcbegin()const;
>Эффекты: Возвращает const_iterator к первому элементу в списке.
Бросок: Ничего.
Сложность: Постоянная.
- <
iteratorend();
>Эффекты: Возвращает итератор в конец списка.
Бросок: Ничего.
Сложность: Постоянная.
- <
const_iteratorend()const;
>Эффекты: Возвращает const_iterator в конец списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
const_iteratorcend()const;
>Эффекты: Возвращает постоянный итератор в конец списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
reverse_iteratorrbegin();
>Эффекты: Возвращает обратный_iterator, указывающий на начало обратного списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
const_reverse_iteratorrbegin()const;
>Эффекты: Возвращает const_reverse_iterator, указывающий на начало обратного списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
const_reverse_iteratorcrbegin()const;
>Эффекты: Возвращает const_reverse_iterator, указывающий на начало перевернутого списка.
Бросок: Ничего.
Сложность: Постоянная.
- <
reverse_iteratorrend();
>Эффекты: Возвращает обратный_iterator, указывающий на конец списка.
Бросок: Ничего.
Сложность: Постоянно.
- <
const_reverse_iteratorrend()const;
>Эффекты: Возвращает const_reverse_iterator, указывающий на конец перевернутого списка.
Бросает: Ничего.
Сложность: Постоянство.
- <
const_reverse_iteratorcrend()const;
>Эффекты: Возвращает const_reverse_iterator, указывающий на конец перевернутого списка.
Бросает: Ничего.
Сложность: Постоянно.
- <
size_typesize()const;
>Эффекты: Возвращает количество элементов, содержащихся в списке.
Бросок: Ничего.
Сложность: Линейный по количеству элементов, содержащихся в списке. Если опция постоянного размера отключена. Постоянное время иначе.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
boolempty()const;
>Эффекты: Возвращается, если список не содержит элементов.
Бросок: Ничего.
Сложность: Константа.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidswap(list&other);
>Эффекты: Изменяет элементы x и *это.
Бросает: Ничего.
Сложность: Константа.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidshift_backwards(size_typen=1);
>Эффекты: Перемещает все элементы назад, так что первый элемент становится вторым, второй становится третьим... последний элемент становится первым.
Бросает: Ничего.
Сложность: Линейный по количеству смен.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidshift_forward(size_typen=1);
>Эффекты: Перемещает вперед все элементы, так что второй элемент становится первым, третий становится вторым... первый элемент становится последним.
Бросок: Ничего.
Сложность: Линейный по количеству смен.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
iteratorerase(const_iteratori);
>Эффекты: Стирает элемент, указанный i в списке. Деструкторы не называются.
Возвращает: первый элемент, остающийся за пределами удаленного элемента, или конец(), если такой элемент не существует.
Бросок: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
iteratorerase(const_iteratorb,const_iteratore);
>Требуется: b и e должны быть действительными итераторами для элементов в этом.
Эффекты: Уничтожает диапазон элементов, указанный b и e Никакие деструкторы не называются.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейный по количеству стертых элементов, если это безопасное значение режима или автоматического разъединения, или включен размер постоянного времени. В другое время.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
iteratorerase(const_iteratorb,const_iteratore,size_typen);
>Требуется: b и e должны быть действительными итераторами элементов в *это. n должно быть расстоянием b, e.
Эффекты: Уничтожает диапазон элементов, указанный b и e Никакие деструкторы не называются.
Возвращает: первый элемент, остающийся за пределами удаленных элементов, или конец(), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейное количество стертых элементов, если включено значение безопасного режима или автоматического разъединения. В другое время.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
template<typenameDisposer>
iteratorerase_and_dispose(const_iteratori,Disposerdisposer);
>Требуется: Диспетчер::оператор()(поинт) не должен бросать.
Эффекты: Стирает элемент, указанный i в списке. Деструкторы не называются. Диспозитор::оператор()(указатель) вызывается для удаленного элемента.
Возвращение: первый элемент, остающийся за пределами удаленного элемента, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы к стертому элементу.
- <
template<typenameDisposer>
iteratorerase_and_dispose(const_iteratorb,const_iteratore,
Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Уничтожает диапазон элементов, указанный b и e Никакие деструкторы не называются. Диспозитор::оператор()(указатель) вызывается для удаленных элементов.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейный по количеству стертых элементов.
Примечание: Инвалидирует итераторы на стертые элементы.
- <
voidclear();
>Эффекты: Стирает все элементы контейнера. Никаких деструкторов.
Броски: Ничего.
Сложность: Линейный по количеству элементов списка. Если это безопасный режим или авто-разъединить значение_тип. Постоянное время иначе.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
template<typenameDisposer>voidclear_and_dispose(Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает все элементы контейнера. Деструкторы не называются. Диспозитор::оператор()(указатель) вызывается для удаленных элементов.
Бросает: Ничего.
Сложность: Линейное число элементов списка.
Примечание: Инвалидирует итераторы на стертые элементы.
- <
template<typenameCloner,typenameDisposer>
voidclone_from(constlist&src,Clonercloner,Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать. Клонер должен уступить узлам, эквивалентным исходным узлам.
Эффекты: Стирает все элементы из *этого вызывающего Диспозитора::оператор()(указатель), клонирует все элементы из src, вызывающего Клонера::оператор()(const_reference) и вставляет их на *это.
Если клонер бросает, все клонированные элементы несвязаны и расположены, вызывая Диспозитор::оператор()(указатель).
Сложность: Линейный стертый плюс вставленные элементы.
Бросок: Если клонер бросит. Базовая гарантия.
- <
template<typenameCloner,typenameDisposer>
voidclone_from(list&&src,Clonercloner,Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать. Клонер должен уступить узлам, эквивалентным исходным узлам.
Эффекты: Стирает все элементы из *этого вызывающего Диспозитора::оператор()(указатель), клонирует все элементы из src, вызывающего Клонера::оператор()(ссылка) и вставляет их на *это.
Если клонер бросает, все клонированные элементы несвязаны и расположены, вызывая Диспозитор::оператор()(указатель).
Сложность: Линейный стертый плюс вставленные элементы.
Бросок: Если клонер бросит. Базовая гарантия.
- <
iteratorinsert(const_iteratorp,referencevalue);
>Требуется: Значение должно быть значением l и p должно быть действительным итератором этого.
Эффекты: Вставляет значение перед позицией, указанной p.
Возврат: Итератор вставленного элемента.
Бросает: Ничего.
Сложность: Постоянное время. Никаких конструкторов копий.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
template<typenameIterator>
voidinsert(const_iteratorp,Iteratorb,Iteratore);
>Требуется: Отклоняющийся итератор должен давать lзначение типа value_type и p должен быть действительным итератором *this.
Эффекты: Вставляет диапазон, указанный b и e перед положением p. Копирование конструкторов не называется.
Бросок: Ничего.
Сложность: Линейное число вставленных элементов
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
template<typenameIterator>voidassign(Iteratorb,Iteratore);
>Требуется: Ссылочный итератор должен давать значение l типа value_type.
Эффекты: Очищает список и вставляет диапазон, указанный b и e. Ни разрушители, ни конструкторы копий не называются.
Бросок: Ничего.
Сложность: Линейный к количеству вставленных элементов плюс линейный к элементам, содержащимся в списке, если это значение безопасного режима или автоматического разъединения. Линейный по количеству элементов, вставленных в список иначе.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
template<typenameIterator,typenameDisposer>
voiddispose_and_assign(Disposerdisposer,Iteratorb,Iteratore);
>Требуется: Диспетчер::оператор()(пойнтеры) не должен бросать.
Требуется: Ссылочный итератор должен давать значение l типа value_type.
Эффекты: Очищает список и вставляет диапазон, указанный b и e. Ни разрушители, ни конструкторы копий не называются. Диспозитор::оператор()(указатель) вызывается для удаленных элементов.
Бросок: Ничего.
Сложность: Линейный по количеству вставленных элементов плюс линейный по содержащимся в списке элементам.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
voidsplice(const_iteratorp,list&x);
>Требуется: p должен быть действительным итератором этого.
Эффекты: Переносит все элементы списка x в этот список перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются.
Бросок: Ничего.
Сложность: Константа.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice(const_iteratorp,list&x,const_iteratornew_ele);
>Требуется: p должен быть действительным итератором этого. new_ele должен указывать на элемент, содержащийся в списке x.
Эффекты: Переносит значение, указанное new_ele, из списка x в этот список перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются. Если p == new_ele или p == ++new_ele, эта функция является нулевой операцией.
Бросок: Ничего.
Сложность:
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice(const_iteratorp,list&x,const_iteratorf,const_iteratore);
>Требуется: p должен быть действительным итератором этого. f и e должны указывать на элементы, содержащиеся в списке x.
Эффекты: Переносит диапазон, указанный f и e, из списка x в этот список, перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются.
Броски: Ничего.
Сложность: Линейное число элементов, передаваемых при включении опции постоянного времени. В другое время.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice(const_iteratorp,list&x,const_iteratorf,const_iteratore,
size_typen);
>Требуется: p должен быть действительным итератором этого. f и e должны указывать на элементы, содержащиеся в списке x. n == расстояние (f, e)
Эффекты: Переносит диапазон, указанный f и e из списка x в этот список, перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются.
Броски: Ничего.
Сложность:
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsort();
>Эффекты: Эта функция сортирует список *это согласно std::less. Сорт стабилен, то есть сохраняется относительный порядок эквивалентных элементов.
Бросок: Если value_traits::node_traits::node constructor throws (это не происходит с предопределенными Boost.Intrusive hooks) или std::lessthrows. Основная гарантия.
Примечания: Итераторы и ссылки не являются недействительными.
Сложность: Количество сравнений приблизительно равно N log N, где N — размер списка.
- <
template<typenamePredicate>voidsort(Predicatep);
>Требуется: p должна быть функцией сравнения, которая вызывает строгое слабое упорядочение
Эффекты: Эта функция сортирует список *это по п.Сорт стабилен, то есть сохраняется относительный порядок эквивалентных элементов.
Бросок: Если value_traits::node_traits::node constructor throws (это не происходит с заранее заданными Boost.Intrusive крючками) или predicate throws. Основная гарантия.
Примечания: Это не произойдет, если используется list_base_hook<>или<list_member_hook
>. Итераторы и ссылки не являются недействительными.
Сложность: Количество сравнений приблизительно равно N log N, где N — размер списка.
- <
voidmerge(list&x);
>Эффекты: Эта функция удаляет все элементы x и вставляет их в порядок в соответствии со std::less. Слияние стабильно; то есть, если элемент из *это эквивалентно элементу из x, то элемент из *это будет предшествовать элементу из x.
Бросает: Если std::lessбросок. Основная гарантия.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
Примечание: Итераторы и ссылки не являются недействительными
.
- <
template<typenamePredicate>voidmerge(list&x,Predicatep);
>Требуется: p должна быть функцией сравнения, которая вызывает строгую слабую упорядоченность, и как это, так и x должны быть отсортированы в соответствии с этой упорядоченностью. Списки x и * это должны быть различными.
Эффекты: Эта функция удаляет все элементы x и вставляет их в *это. Слияние стабильно; то есть, если элемент из * это эквивалентно элементу из x, то элемент из * это будет предшествовать элементу из x.
Бросает: Если предикат бросит. Основная гарантия.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
Примечание: Итераторы и ссылки не являются недействительными.
- <
voidreverse();
>Эффекты: Обратный порядок элементов в списке.
Бросает: Ничего.
Сложность: Эта функция является линейным временем.
Примечание: Итераторы и ссылки не являются недействительными
.
- <
voidremove(const_referencevalue);
>Эффекты: Удалите все элементы, которые сравниваются с ценностью. Разрушители не называются.
Броски: Если std::equal_toбросок. Основная гарантия.
Сложность: Линейное время. Он выполняет точное сравнение размеров () для равенства.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
template<typenameDisposer>
voidremove_and_dispose(const_referencevalue,Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Удалите все элементы, которые сравниваются с ценностью. Диспозитор::оператор()(указатель) вызывается для каждого удаленного элемента.
Бросок: Если std::equal_toбросок. Основная гарантия.
Сложность: Линейное время. Он выполняет точное сравнение размеров () для равенства.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
template<typenamePred>voidremove_if(Predpred);
>Эффекты: Удаляет все элементы, для которых удовлетворяется заданный предикат. Разрушители не называются.
Броски: Если бы Хищник бросил. Основная гарантия.
Сложность: Линейное время. Он выполняет точно размер() вызовов к предикату.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
template<typenamePred,typenameDisposer>
voidremove_and_dispose_if(Predpred,Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Удаляет все элементы, для которых удовлетворяется заданный предикат. Диспозитор::оператор()(указатель) вызывается для каждого удаленного элемента.
Броски: Если бы Хищник бросил. Основная гарантия.
Сложность: Линейное время. Он выполняет точное сравнение размеров () для равенства.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
voidunique();
>Эффекты: Удалите соседние дублирующие элементы или соседние элементы, которые равны из списка. Деструкторы не называются.
Бросок: Если std::equal_toСложность: Линейное время (размер()-1 сравнения вызывает pred()).
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
template<typenameBinaryPredicate>voidunique(BinaryPredicatepred);
>Эффекты: Удаляет соседние дублирующие элементы или соседние элементы, удовлетворяющие некоторому двоичному предикату из списка. Разрушители не называются.
Броски: Если бы Хищник бросил. Основная гарантия.
Сложность: Линейное время (размер()-1 сравнений равенства).
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
template<typenameDisposer>voidunique_and_dispose(Disposerdisposer);
>Требует: Диспетчер::оператор()(поинт) не должен бросать.
Эффекты: Удалите соседние дублирующие элементы или соседние элементы, которые равны из списка. Диспозитор::оператор()(указатель) вызывается для каждого удаленного элемента.
Бросок: Если std::equal_toСложность: Линейное время (размер()-1) сравнения сравнения равенства.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
template<typenameBinaryPredicate,typenameDisposer>
voidunique_and_dispose(BinaryPredicatepred,Disposerdisposer);
>Требуется: Диспетчер::оператор()(пойнтеры) не должен бросать.
Эффекты: Удаляет соседние дублирующие элементы или соседние элементы, удовлетворяющие некоторому двоичному предикату из списка. Диспозитор::оператор()(указатель) вызывается для каждого удаленного элемента.
Бросок: Если бы Хищник бросил. Базовая гарантия.
Сложность: Линейное время (размер()-1) сравнения сравнения равенства.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
iteratoriterator_to(referencevalue);
>Требуется: Значение должно быть ссылкой на значение, включенное в список.
Эффекты: Эта функция возвращает const_iterator, указывающий на элемент
Бросает: Ничего.
Сложность: Постоянное время.
Примечание: Итераторы и ссылки не являются недействительными.
- <
const_iteratoriterator_to(const_referencevalue)const;
>Требуется: значение должно быть ссылкой на значение, вставленное в список.
Эффекты: Эта функция возвращает итератор, указывающий на элемент.
Бросок: Ничего.
Сложность: Постоянное время.
Примечание: Итераторы и ссылки не являются недействительными.
- <
voidcheck()const;
>Эффекты: Утверждает целостность контейнера.
Сложность: Линейное время.
Примечание: Метод не имеет эффекта, когда утверждения выключены (например, с NDEBUG). Экспериментальная функция интерфейса может измениться в будущих версиях.