- <
voidclear();
>Эффекты: Стирает все элементы контейнера.
Бросает: Ничего.
Сложность: Линейный по количеству элементов списка. Если это безопасный режим или авто-разъединить значение_тип. Постоянное время иначе.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
template<typenameDisposer>voidclear_and_dispose(Disposerdisposer);
>Требуется: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает все элементы контейнера Утилизатор::оператор()(указатель) вызывается для удаленных элементов.
Бросок: Ничего.
Сложность: Линейное число элементов списка.
Примечание: Инвалидирует итераторы на стертые элементы.
- <
voidpush_front(referencevalue);
>Требуется: Значение должно быть lvalue.
Эффекты: Вставляет значение в передней части списка. Копирование конструкторов не называется.
Бросок: Ничего.
Сложность: Постоянная.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidpush_back(referencevalue);
>Требуется:
Эффекты: Вставьте значение в заднюю часть списка. Никаких конструкторов копий.
Броски: Ничего.
Сложность: Константа.
Примечание: Не влияет на достоверность итераторов и ссылок. Данная функция доступна только в cache_last<>.
- <
voidpop_front();
>Эффекты: Стирает первый элемент списка. Разрушители не называются.
Броски: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
template<typenameDisposer>voidpop_front_and_dispose(Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
: Стирает первый элемент списка. Диспозитор::оператор()(указатель) вызывается для удаленного элемента.
Бросок: Ничего.
Сложность: Постоянная.
Примечание: Инвалидирует итераторы к стертому элементу.
- <
referencefront();
>Эффекты: Возвращает ссылку на первый элемент списка.
Бросок: Ничего.
Сложность: Постоянная.
- <
const_referencefront()const;
>Эффекты: Возвращает ссылку на первый элемент списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
referenceback();
>Эффекты: Возвращает ссылку на последний элемент списка.
Бросок: Ничего.
Сложность: Постоянная.
Примечание: Не влияет на достоверность итераторов и ссылок. Данная функция доступна только в cache_last<>.
- <
const_referenceback()const;
>Эффекты: Возвращает ссылку на последний элемент списка.
Бросок: Ничего.
Сложность: Постоянная.
Примечание: Не влияет на достоверность итераторов и ссылок. Данная функция доступна только в cache_last<>.
- <
iteratorbegin();
>Эффекты: Возвращает итератор к первому элементу, содержащемуся в списке.
Бросок: Ничего.
Сложность: Постоянная.
- <
const_iteratorbegin()const;
>Эффекты: Возвращает const_iterator к первому элементу, содержащемуся в списке.
Бросает: Ничего.
Сложность: Постоянная.
- <
const_iteratorcbegin()const;
>Эффекты: Возвращает const_iterator к первому элементу в списке.
Броски: Ничего.
Сложность: Постоянная.
- <
iteratorend();
>Эффекты: Возвращает итератор в конец списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
const_iteratorend()const;
>Эффекты: Возвращает const_iterator в конец списка.
Бросает: Ничего.
Сложность: Постоянно.
- <
const_iteratorcend()const;
>Эффекты: Возвращает const_iterator в конец списка.
Бросает: Ничего.
Сложность: Постоянная.
- <
iteratorbefore_begin();
>Эффекты: Возвращает итератор, который указывает на положение перед первым элементом. Эквивалент "end()"
Бросает: Ничего.
Сложность: Постоянно.
- <
const_iteratorbefore_begin()const;
>Эффекты: Возвращает итератор, который указывает на положение перед первым элементом. Эквивалент "end()"
Бросок: Ничего.
Сложность: Постоянная.
- <
const_iteratorcbefore_begin()const;
>Эффекты: Возвращает итератор, который указывает на положение перед первым элементом.
Бросок:
Сложность: Постоянная.
- <
iteratorlast();
>Эффекты: Возвращает итератор к последнему элементу, содержащемуся в списке.
Бросок: Ничего.
Сложность: Постоянная.
Примечание: Эта функция присутствует только в том случае, если опция cached_last<>верна.
- <
const_iteratorlast()const;
>Эффекты: Возвращает const_iterator к последнему элементу списка.
Бросок: Ничего.
Сложность: Постоянная.
Примечание: Эта функция присутствует только в том случае, если опция cached_last<>верна.
- <
const_iteratorclast()const;
>Эффекты: Возвращает const_iterator к последнему элементу, содержащемуся в списке.
Бросает: Ничего.
Сложность: Постоянная.
Примечание: Эта функция присутствует только в том случае, если опция cached_last<>верна.
- <
size_typesize()const;
>Эффекты: Возвращает количество элементов, содержащихся в списке.
Бросок: Ничего.
Сложность: Линейное число элементов, содержащихся в списке, если<constant_time_size
>является ложным. Постоянное время иначе.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
boolempty()const;
>Эффекты: Возвращается, если список не содержит элементов.
Бросает: Ничего.
Сложность: Постоянная.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidswap(slist&other);
>Эффекты: Перемещает элементы x и *это.
Бросает: Ничего.
Сложность: Линейный по количеству элементов обоих списков. Постоянное время, если используются опции линейный<>и/или cache_last<>
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
voidshift_backwards(size_typen=1);
>Эффекты: Перемещает все элементы назад, так что первый элемент становится вторым, второй становится третьим... последний элемент становится первым.
Бросает: Ничего.
Сложность: Линейный к числу элементов плюс число сдвигов.
Примечание: итераторы Не влияет на достоверность итераторов и ссылок.
- <
voidshift_forward(size_typen=1);
>Эффекты: Перемещает вперед все элементы, так что второй элемент становится первым, третий становится вторым... первый элемент становится последним.
Бросает: Ничего.
Сложность: Линейный к числу элементов плюс число сдвигов.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
template<typenameCloner,typenameDisposer>
voidclone_from(constslist&src,Clonercloner,Disposerdisposer);
>Требует: Диспетчер::оператор()(поинт) не должен бросать. Клонер должен уступить узлам, эквивалентным исходным узлам.
Эффекты: Стирает все элементы из *этого вызывающего Диспозитора::оператор()(указатель), клонирует все элементы из src, вызывающего Клонера::оператор()(const_reference) и вставляет их на *это.
Если клонер бросает, все клонированные элементы несвязаны и расположены, вызывая Диспозитор::оператор()(указатель).
Сложность: Линейный стертый плюс вставленные элементы.
Бросок: Если клонер бросит.
- <
template<typenameCloner,typenameDisposer>
voidclone_from(slist&&src,Clonercloner,Disposerdisposer);
>Требует: Диспетчер::оператор()(поинт) не должен бросать. Клонер должен уступить узлам, эквивалентным исходным узлам.
Эффекты: Стирает все элементы из *этого вызывающего Диспозитора::оператор()(указатель), клонирует все элементы из src, вызывающего Клонера::оператор()(ссылка) и вставляет их на *это.
Если клонер бросает, все клонированные элементы несвязаны и расположены, вызывая Диспозитор::оператор()(указатель).
Сложность: Линейный стертый плюс вставленные элементы.
Бросок: Если клонер бросит.
- <
iteratorinsert_after(const_iteratorprev_p,referencevalue);
>Требуется: Значение должно быть lvalue и prev_p должно указывать на элемент, содержащийся в списке, или на конец ().
Эффекты: Вставляет значение после позиции, указанной prev_p. Ни один конструктор копий не называется.
Возвращение: Итератор для вставленного элемента.
Бросок: Ничего.
Сложность: Константа.
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
template<typenameIterator>
voidinsert_after(const_iteratorprev_p,Iteratorf,Iteratorl);
>Требуется: Отклоняющийся итератор должен давать значение l типа value_type, а prev_p должен указывать на элемент, содержащийся в списке, или на конечный узел.
Эффекты: Вставляет [f, l] после позиции prev_p.
Бросает: Ничего.
Сложность: Линейное число вставленных элементов
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
iteratorinsert(const_iteratorp,referencevalue);
>Требуется: Значение должно быть значением l и p должно указывать на элемент, содержащийся в списке, или на конец ().
Эффекты: Вставляет значение перед позицией, указанной p. Ни один конструктор копий не называется.
Бросок: Ничего.
Сложность: Линейное число элементов до p. Постоянное время, если cache_last<>истинно и p == конец().
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
template<typenameIterator>
voidinsert(const_iteratorp,Iteratorb,Iteratore);
>Требуется: Ссылочный итератор должен давать значение l типа value_type и p должен указывать на элемент, содержащийся в списке, или на конечный узел.
Эффекты: Вставляется точка b и e перед положением p. Ни один конструктор копий не называется.
Броски: Ничего.
Сложность: Линейный к числу вставленных элементов плюс линейный к элементам перед b. Линейный к числу элементов для вставки, если опция cache_last<>верна и p == конец().
Примечание: Не влияет на достоверность итераторов и ссылок.
- <
iteratorerase_after(const_iteratorprev);
>Эффекты: Стирает элемент после элемента, указанного в предварительном списке. Деструкторы не называются.
Возвращает: первый элемент, остающийся за пределами удаленных элементов, или конец(), если такой элемент не существует.
Бросок: Ничего.
Сложность: Константа.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
iteratorerase_after(const_iteratorbefore_f,const_iteratorl);
>Эффекты: Стирает диапазон (до _f, l) из списка. Деструкторы не называются.
Возвращает: первый элемент, остающийся за пределами удаленных элементов, или конец(), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейное количество стертых элементов, если это безопасный режим, активируется значение автоотсоединения или постоянный размер времени. Постоянное время иначе.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
iteratorerase_after(const_iteratorbefore_f,const_iteratorl,size_typen);
>Эффекты: Стирает диапазон (до _f, l) из списка. n должно быть расстоянием (до _f, l) - 1. Деструкторы не называются.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность: Постоянное время, если<link_mode
>нормально. Линейные элементы (l - до _f) иначе.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
iteratorerase(const_iteratori);
>Эффекты: Стирает элемент, указанный i в списке. Деструкторы не называются.
Возвращает: первый элемент, остающийся за пределами удаленного элемента, или конец(), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейные элементы перед i.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
iteratorerase(const_iteratorf,const_iteratorl);
>Требуется: f и l должны быть действительными итераторами для элементов в этом.
Эффекты: Стирает диапазон, указанный b и e. Деструкторы не называются.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейные элементы до l.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
iteratorerase(const_iteratorf,const_iteratorl,size_typen);
>Эффекты: Стирает диапазон [f, l] из списка. n должно быть расстоянием f, l. Деструкторы не называются.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность: линейная по отношению к элементам до f, если<link_mode
>является нормальной_ссылкой и<constant_time_size
>активируется. Линейный к элементам до l иначе.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
template<typenameDisposer>
iteratorerase_after_and_dispose(const_iteratorprev,Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает элемент после элемента, указанного в предварительном списке. Диспозитор::оператор()(указатель) вызывается для удаленного элемента.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность:
Примечание: Инвалидирует итераторы к стертому элементу.
- <
template<typenameDisposer>
iteratorerase_after_and_dispose(const_iteratorbefore_f,const_iteratorl,
Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает диапазон (до _f, l) из списка. Диспозитор::оператор()(указатель) вызывается для удаленных элементов.
Возвращает: первый элемент, остающийся за пределами удаленных элементов, или конец(), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейный к элементам (l - before_f + 1).
Примечание: Инвалидирует итераторы к стертому элементу.
- <
template<typenameDisposer>
iteratorerase_and_dispose(const_iteratori,Disposerdisposer);
>Требует: Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает элемент, указанный i в списке. Деструкторы не называются. Диспозитор::оператор()(указатель) вызывается для удаленного элемента.
Возвращает: первый элемент, остающийся за пределами удаленного элемента, или конец(), если такого элемента не существует.
Бросает: Ничего.
Сложность: Линейные элементы до i.
Примечание: Инвалидирует итераторы (но не ссылки) на стертый элемент.
- <
template<typenameDisposer>
iteratorerase_and_dispose(const_iteratorf,const_iteratorl,
Disposerdisposer);
>Требуется: f и l должны быть действительными итераторами элементов в этом. Диспетчер::оператор()(указатель) не должен бросать.
Эффекты: Стирает диапазон, указанный b и e. Деструкторы не называются. Диспозитор::оператор()(указатель) вызывается для удаленных элементов.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросает: Ничего.
Сложность: Линейный к числу стертых элементов плюс линейный к элементам до f.
Примечание: Инвалидирует итераторы (но не ссылки) на стертые элементы.
- <
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_after(const_iteratorprev,slist&x,const_iterator*l=0);
>Требуется: prev должен указывать на элемент, содержащийся в этом списке, или на элемент
: Переносит все элементы списка x в этот список, после элемента, указанного prev. Ни разрушители, ни конструкторы копий не называются.
Возвращение: Ничего.
Бросок: Ничего.
Сложность: В общем, линейно к элементам, содержащимся в x. Постоянное время, если опция cache_last<>верна, а также постоянное время, если линейная опция верна, «это» пуста, а «l» не используется.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
Дополнительная записка: Если факультативный параметр «l» предусмотрен, он будет присвоен последнему сплайсованному элементу или prev, если x пуст. Этот итератор можно использовать в качестве нового итератора «prev» для нового splice_after call. которые будут сплайсировать новые значения после ранее сплайсированных значений.
- <
voidsplice_after(const_iteratorprev_pos,slist&x,const_iteratorprev_ele);
>Требуется: Prev должен указывать на элемент, содержащийся в этом списке, или на элемент pre_begin(). prev_ele должен указывать на элемент, содержащийся в списке x или должен быть x.before_begin().
Эффекты: Переносит элемент после prev_ele, из списка x в этот список, после элемента, указанного prev. Ни разрушители, ни конструкторы копий не называются.
Бросок: Ничего.
Сложность: Константа.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice_after(const_iteratorprev_pos,slist&x,const_iteratorbefore_f,
const_iteratorbefore_l);
>Требуется: prev_pos должен быть реферативным итератором в *this or be before_begin(), а before_f и before_l принадлежат x и ++before_f!= x.end() && before_l!= x.end().
: Переносит диапазон (до _f, до _l) из списка x в этот список после элемента, указанного prev_pos. Ни разрушители, ни конструкторы копий не называются.
Броски: Ничего.
Сложность: Линейное число элементов, если<constant_time_size
>верно. В другое время.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice_after(const_iteratorprev_pos,slist&x,const_iteratorbefore_f,
const_iteratorbefore_l,size_typen);
>Требуется: prev_pos должен быть реферативным итератором в *this or be before_begin(), а before_f и before_l принадлежат x и ++before_f!= x.end() && before_l!= x.end() и n == distance(before_f, before_l).
Эффекты: Переносит диапазон (до f, до l) из списка x в этот список после элемента, указанного p. Ни разрушители, ни конструкторы копий не называются.
Бросок: Ничего.
Сложность: Постоянное время.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice(const_iteratorit,slist&x,const_iterator*l=0);
>Требуется:
Эффекты: Переносит все элементы списка x в этот список перед указанным им элементом. Ни разрушители, ни конструкторы копий не называются.
Возвращение: Ничего.
Бросок: Ничего.
Сложность: Линейный к элементам, содержащимся в x плюс линейный к элементам перед ним. Линейный к элементам перед ним, если опция cache_last<>верна. Постоянное время, если опция cache_last<>верна и она == конец(.)
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
Дополнительное примечание: Если факультативный параметр «l» предусмотрен, он будет присвоен последнему сплайсованному элементу или prev, если x пуст. Этот итератор можно использовать в качестве нового итератора «prev» для нового splice_after call. которые будут сплайсировать новые значения после ранее сплайсированных значений.
- <
voidsplice(const_iteratorpos,slist&x,const_iteratorelem);
>Требует: он должен быть действительным итератором этого. Элем должен указывать на элемент, содержащийся в списке x.
Эффекты: Переносит элемент elem из списка x в этот список перед элементом, указанным pos. Ни разрушители, ни конструкторы копий не называются.
Бросок: Ничего.
Сложность: Линейный к элементам перед pos и перед elem. Линейный к элементам перед elem, если опция cache_last<>верна и pos == end().
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice(const_iteratorpos,slist&x,const_iteratorf,const_iteratorl);
>Требуется: Пос должен быть реферативным итератором в *это и f и f принадлежат x и f и f допустимому диапазону на x.
Эффекты: Переносит диапазон [f, l] из списка x в этот список, прежде чем элемент указывается pos. Ни разрушители, ни конструкторы копий не называются.
Бросок: Ничего.
Сложность: Линейный к сумме элементов перед pos, f и l плюс линейный к числу переданных элементов, если<constant_time_size
>верно. Линейный к сумме элементов до f, и l плюс линейный к числу элементов, переданных, если<constant_time_size
>истинно, если cache_last<>истинно и pos == конец()
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice(const_iteratorpos,slist&x,const_iteratorf,const_iteratorl,
size_typen);
>Требуется: pos должен быть реферативным итератором в *это и f и l принадлежат x и f и l допустимый диапазон на x. n == расстояние (f, l).
Эффекты: Переносит диапазон [f, l] из списка x в этот список, прежде чем элемент указывается pos. Ни разрушители, ни конструкторы копий не называются.
Бросок: Ничего.
Сложность: Линейный к сумме элементов перед pos, f и l. Линейный к сумме элементов перед f и l, если cache_last<>истинно и pos == конец().
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
template<typenamePredicate>voidsort(Predicatep);
>Эффекты: Эта функция сортирует список *это согласно std::less. Сорт стабилен, то есть сохраняется относительный порядок эквивалентных элементов.
Броски: Если value_traits::node_traits::node constructor throws (это не происходит с заранее заданными Boost.Intrusive крючками) или predicate throws. Основная гарантия.
Сложность: Количество сравнений приблизительно равно N log N, где N — размер списка.
Примечание: Итераторы и ссылки не признаются недействительными
- <
voidsort();
>Требуется: p должна быть функцией сравнения, которая вызывает строгую слабую упорядоченность, и как это, так и x должны быть отсортированы в соответствии с этой упорядоченностью. Списки x и * это должны быть различными.
Эффекты: Эта функция удаляет все элементы x и вставляет их в *это. Слияние стабильно; то есть, если элемент из * это эквивалентно элементу из x, то элемент из * это будет предшествовать элементу из x.
Бросает: Если value_traits::node_traits::node constructor throws (это не происходит с предопределенными Boost.Intrusive hooks) или std::lessthrows. Основная гарантия.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
Примечание: Итераторы и ссылки не являются недействительными.
- <
template<typenamePredicate>
voidmerge(slist&x,Predicatep,const_iterator*l=0);
>Требуется: p должна быть функцией сравнения, которая вызывает строгую слабую упорядоченность, и как это, так и x должны быть отсортированы в соответствии с этой упорядоченностью. Списки x и * должны быть различными.
Эффекты: Эта функция удаляет все элементы x и вставляет их в *это. Слияние стабильно; то есть, если элемент из * это эквивалентно элементу из x, то элемент из * это будет предшествовать элементу из x.
Возвращение: Ничего.
Бросок: Если предикат бросит. Основная гарантия.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
Примечание: Итераторы и ссылки не являются недействительными.
Дополнительная записка: Если необязательный аргумент «l» принят, он назначается итератору до последнего переданного значения или конец () x пуст.
- <
voidmerge(slist&x);
>Эффекты: Эта функция удаляет все элементы x и вставляет их в порядок в соответствии со std::less. Слияние стабильно; то есть, если элемент из *это эквивалентно элементу из x, то элемент из *это будет предшествовать элементу из x.
Бросает: если std::lessбросает. Основная гарантия.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + 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) сравнения вызывает пред()).
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
- <
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;
>Требуется: значение должно быть ссылкой на значение, вставленное в список.
Эффекты: Эта функция возвращает итератор, указывающий на элемент.
Броски: Ничего.
Сложность: Постоянное время.
Примечание: Итераторы и ссылки не являются недействительными.
- <
iteratorprevious(iteratori);
>Возвращение: Итератор элемента перед i в списке. Возвращает конечный автор, если я или начальный автор, или список пуст.
Броски: Ничего.
Сложность: Линейное число элементов перед i. Постоянный, если cache_last<>является истинным и i == конец().
- <
const_iteratorprevious(const_iteratori)const;
>Возвращение: Const_iterator к элементу перед i в списке. Возвращает конечный Const_iterator, если i является начальным Const_iterator или список пуст.
Броски: Ничего.
Сложность: Линейное число элементов перед i. Постоянный, если cache_last<>является истинным и i == конец().
- <
iteratorprevious(const_iteratorprev_from,iteratori);
>Возвращение: Итератор к элементу перед i в списке, начиная поиск по элементу после prev_from. Возвращает конечный автор, если я или начальный автор, или список пуст.
Бросает: Ничего.
Сложность: Линейное число элементов перед i. Постоянный, если cache_last<>является истинным и i == конец().
- <
const_iteratorprevious(const_iteratorprev_from,const_iteratori)const;
>Возвращение: Const_iterator к элементу перед i в списке, начиная поиск по элементу после prev_from. Возвращает конечный Const_iterator, если i является начальным Const_iterator или список пуст.
Броски: Ничего.
Сложность: Линейное число элементов перед i. Постоянный, если cache_last<>является истинным и i == конец().
- <
voidcheck()const;
>Эффекты: Утверждает целостность контейнера.
Сложность: Линейное время.
Примечание: Метод не имеет эффекта, когда утверждения выключены (например, с NDEBUG). Экспериментальная функция интерфейса может измениться в будущих версиях.