voidassign(size_typen,constT&val);
Эффекты: Присваивает n копий вал к *этому.
Бросает: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Линейный к n.
template<typenameInpIt>voidassign(InpItfirst,InpItlast);
Эффекты: Назначает диапазон [первый, последний] к *этому.
Бросает: Если выделение памяти бросает или T-конструктор от отсылки к InpIt бросает.
Сложность: Линейный к n.
voidassign(std::initializer_list<value_type>il);
Эффекты: Назначает диапазон [il.begin(), il.end()) на *это.
Бросает: Если выделение памяти выбрасывает или T-конструктор из дереференцирующего std::initializer_list iterator throws.
Сложность: Линейный диапазон [il.begin(), il.end()).
allocator_typeget_allocator()constnoexcept;
Эффекты: Вернет копию внутреннего распределителя.
Бросок: Если копировщик распределителя бросит.
Сложность: Постоянно.
stored_allocator_type&get_stored_allocator()noexcept;
Эффекты: Возвращает ссылку на внутренний распределитель.
Бросает: Ничто
Сложность: Постоянная.
Примечание: Нестандартное расширение.
conststored_allocator_type&get_stored_allocator()constnoexcept;
Эффекты: Возвращает ссылку на внутренний распределитель.
Бросает: Ничто
Сложность: Постоянная.
Примечание: Нестандартное расширение.
iteratorbefore_begin()noexcept;
Эффекты: Возвращает неотносительный итератор, который при увеличении дает начало (). Этот итератор может использоваться в качестве аргумента для вставки_after, стирания_after и т. д.
Бросок: Ничего.
Сложность: Постоянная.
- <
const_iteratorbefore_begin()constnoexcept;
>Эффекты: Возвращает неотносительный const_iterator, который при увеличении дает начало(). Этот итератор может использоваться в качестве аргумента для вставки_after, стирания_after и т. д.
Бросает: Ничего.
Сложность: Постоянно.
iteratorbegin()noexcept;
Эффекты: Возвращает итератор к первому элементу, содержащемуся в списке.
Бросает: Ничего.
Сложность: Постоянная.
const_iteratorbegin()constnoexcept;
Эффекты: Возвращает const_iterator к первому элементу в списке.
Бросает: Ничего.
Сложность: Постоянно.
iteratorend()noexcept;
Эффекты: Возвращает итератор в конец списка.
Бросает: Ничего.
Сложность: Постоянная.
const_iteratorend()constnoexcept;
Эффекты: Возвращает const_iterator в конец списка.
Бросает: Ничего.
Сложность: Постоянная.
const_iteratorcbefore_begin()constnoexcept;
Эффекты: Возвращает неотносительный const_iterator, который при увеличении дает начало(). Этот итератор может использоваться в качестве аргумента для вставки_after, стирания_after и т. д.
Бросок: Ничего.
Сложность: Постоянная.
const_iteratorcbegin()constnoexcept;
Эффекты: Возвращает const_iterator к первому элементу в списке.
Бросок: Ничего.
Сложность: Постоянная.
const_iteratorcend()constnoexcept;
Эффекты: Возвращает const_iterator в конец списка.
Бросок: Ничего.
Сложность: Постоянная.
- <
iteratorprevious(iteratorp)noexcept;
>Возвращение: Итератор к элементу перед i в последовательности. Возвращает конечный итератор, если i является начальным или последовательность пуста.
Бросок: Ничего.
Сложность: Линейное число элементов до i.
Примечание: Нестандартное расширение.
const_iteratorprevious(const_iteratorp);
Возвращение: Const_iterator к элементу перед i в последовательности. Возвращает конечный Const_iterator, если i является начальным Const_iterator или последовательность пуста.
Бросок: Ничего.
Сложность: Линейное число элементов до i.
Примечание: Нестандартное расширение.
boolempty()const;
Эффекты: Возвращается, если список не содержит элементов.
Бросок: Ничего.
Сложность: Постоянная.
size_typesize()const;
Эффекты: Возвращает число элементов, содержащихся в списке.
Бросает: Ничего.
Сложность: Постоянная.
size_typemax_size()const;
Эффекты: Возвращает наибольший возможный размер списка.
Бросает: Ничего.
Сложность: Постоянная.
voidresize(size_typenew_size);
Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы инициализируются.
Бросок: Если отбрасывает выделение памяти, или отбрасывает конструктор копий Т.
Сложность: Линейная разница между размером () и новым размером.
voidresize(size_typenew_size,constT&x);
Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы копируются из x.
Броски: Если отбрасывает выделение памяти, или отбрасывает конструктор копий Т.
Сложность: Линейная разница между размером () и новым размером.
referencefront();
Требует:!empty()
Эффекты: Возвращает ссылку на первый элемент из начала контейнера.
Бросок: Ничего.
Сложность: Постоянно.
const_referencefront()const;
Требует:!empty()
Эффекты: Возвращает ссылку на первый элемент из начала контейнера.
Бросок: Ничего.
Сложность: Постоянная.
template<class...Args>referenceemplace_front(Args&&...args);
Эффекты: Вставляет объект типа Т, построенный с помощью std::forward(args)... в передней части списка
Возвращение: Ссылка на созданный объект.
Бросок: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Амортизированное постоянное время.
template<class...Args>
iteratoremplace_after(const_iteratorprev,Args&&...args);
Эффекты: Вставляется объект типа Т, построенный с помощью std::forward(args)... после прев
Бросает: Если выделение памяти бросает, или конструктор T бросает.
Сложность: постоянная
voidpush_front(constT&x);
Эффекты: В начале списка вставляется копия x.
Бросает: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Амортизированное постоянное время.
voidpush_front(T&&x);
Эффекты: Конструирует новый элемент в начале списка и перемещает ресурсы x в этот новый элемент.
Бросок: Если отбрасывает память.
Сложность: Амортизированное постоянное время.
iteratorinsert_after(const_iteratorprev_p,constT&x);
Требуется: p должен быть действительным итератором *этого.
Эффекты: Вставляется копия значения после prev_p.
Возврат: Итератор вставленного элемента.
Бросает: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Амортизированное постоянное время.
Примечание: Не влияет на достоверность итераторов и ссылок на предыдущие значения.
iteratorinsert_after(const_iteratorprev_p,T&&x);
Требуется: prev_p должен быть действительным итератором этого.
Эффекты: Вставляет сконструированный объект копирования с ходом от значения после элемента, указанного prev_p.
Возвращает: Итератор вставленного элемента.
Бросает: Если выделение памяти бросает.
Сложность: Амортизированное постоянное время.
Примечание: Не влияет на достоверность итераторов и ссылок на предыдущие значения.
iteratorinsert_after(const_iteratorprev_p,size_typen,
constvalue_type&x);
Требуется: prev_p должен быть действительным итератором этого.
Эффекты: Вставить n копий x после prev_p.
Возвращение: итератор до последнего вставленного элемента или prev_p, если n равно 0.
Бросает: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Линейный к n.
Примечание: Не влияет на достоверность итераторов и ссылок на предыдущие значения.
template<typenameInpIt>
iteratorinsert_after(const_iteratorprev_p,InpItfirst,InpItlast);
Требуется: prev_p должен быть действительным итератором этого.
Эффекты: Вставляется диапазон, указанный [первым, последним] после prev_p.
Возвращается: итератор до последнего вставленного элемента или prev_p, если первый == последний.
Бросает: Если выделение памяти бросает, конструктор Т из отнесенного к делу InpIt бросает.
Сложность: Линейное число вставленных элементов
Примечание: Не влияет на достоверность итераторов и ссылок на предыдущие значения.
- <
iteratorinsert_after(const_iteratorprev_p,
std::initializer_list<value_type>il);
>Требуется: prev_p должен быть действительным итератором этого.
Эффекты: Вставляет диапазон, указанный [il.begin(), il.end()) после prev_p.
Возвращает: итератор к последнему вставленному элементу или prev_p, если il.begin() == il.end().
Бросает: Если выделение памяти бросает, T's конструктор из отнесенного std::initializer_list итератор бросает.
Сложность: Линейный по количеству вставленных элементов.
Примечание: Не влияет на достоверность итераторов и ссылок на предыдущие значения.
voidpop_front();
Эффекты: Удалите первый элемент из списка.
Бросает: Ничего.
Сложность: Амортизированное постоянное время.
iteratorerase_after(const_iteratorprev_p);
Эффекты: Стирает элемент после элемента, указанного prev_p списка.
Возвращает: первый элемент, остающийся за пределами удаленных элементов, или конец(), если такой элемент не существует.
Бросок: Ничего.
Сложность: Константа.
Примечание: Не делает недействительными итераторы или ссылки на не стертые элементы.
- <
iteratorerase_after(const_iteratorbefore_first,const_iteratorlast);
>Эффекты: Стирает диапазон (до_первого, последнего) из списка.
Возвращение: первый элемент, остающийся за пределами удаленных элементов, или конец (), если такой элемент не существует.
Бросок: Ничего.
Сложность: Линейный по количеству стертых элементов.
Примечание: Не делает недействительными итераторы или ссылки на не стертые элементы.
voidswap(slist&x)noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));
Эффекты: Измените содержание *это и x.
Бросает: Ничего.
Сложность: Линейное число элементов на *это и x.
voidclear();
Эффекты: Стирает все элементы списка.
Бросок: Ничего.
Сложность: Линейный по количеству элементов в списке.
voidsplice_after(const_iteratorprev_p,slist&x)noexcept;
Требуется: p должен указывать на элемент, содержащийся в списке. x!= *это
Эффекты: Переносит все элементы списка x в этот список после элемента, указанного p. Ни разрушители, ни конструкторы копий не называются.
Броски: std::runtime_error, если этот' распределитель и x' распределитель не равны.
Сложность: Линейные элементы в x.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice_after(const_iteratorprev_p,slist&&x)noexcept;
Требуется: p должен указывать на элемент, содержащийся в списке. x!= *это
Эффекты: Переносит все элементы списка x в этот список после элемента, указанного p. Ни разрушители, ни конструкторы копий не называются.
Броски: std::runtime_error, если этот' распределитель и x' распределитель не равны.
Сложность: Линейные элементы в x.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice_after(const_iteratorprev_p,slist&x,const_iteratorprev)noexcept;
Требуется: prev_p должен быть действительным итератором этого. Я должен указать на элемент, содержащийся в списке x. Этот распределитель и распределитель x должны сравниваться равными.
: Переносит значение, указанное i, из списка x в этот список, после элемента, указанного prev_p. Если prev_p == prev или prev_p == ++prev, эта функция является нулевой операцией.
Броски: Ничто
Сложность: Постоянная.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice_after(const_iteratorprev_p,slist&&x,const_iteratorprev)noexcept;
Требуется: prev_p должен быть действительным итератором этого. Я должен указать на элемент, содержащийся в списке x. Этот распределитель и распределитель x должны сравниваться равными.
Эффекты: Переносит значение, указанное i, из списка x в этот список, после элемента, указанного prev_p. Если prev_p == prev или prev_p == ++prev, эта функция является нулевой операцией.
Броски: Ничто
Сложность:
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice_after(const_iteratorprev_p,slist&x,
const_iteratorbefore_first,const_iteratorbefore_last)noexcept;
Требуется: prev_p должен быть действительным итератором этого. Перед_first и перед_last должны быть действительными итераторами x. prev_p не должен содержаться в [до_первого, до_последнего] диапазоне. Этот распределитель и распределитель x должны сравниваться равными.
Эффекты: Переносит диапазон [before_first + 1, before_last + 1] из списка x в этот список, после элемента, указанного prev_p.
Бросает: Ничто
Сложность: Линейное число переданных элементов.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice_after(const_iteratorprev_p,slist&&x,
const_iteratorbefore_first,const_iteratorbefore_last)noexcept;
Требуется: prev_p должен быть действительным итератором этого. Перед_first и перед_last должны быть действительными итераторами x. prev_p не должен содержаться в [до_первого, до_последнего] диапазоне. Этот распределитель и распределитель x должны сравниваться равными.
Эффекты: Переносит диапазон [before_first + 1, before_last + 1] из списка x в этот список, после элемента, указанного prev_p.
Бросает: Ничто
Сложность: Линейный по количеству переданных элементов.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice_after(const_iteratorprev_p,slist&x,
const_iteratorbefore_first,const_iteratorbefore_last,
size_typen)noexcept;
Требуется: prev_p должен быть действительным итератором этого. Перед_first и перед_last должны быть действительными итераторами x. prev_p не должен содержаться в [before_first, before_last] диапазоне. n == расстояние (before_first, before_last). Этот распределитель и распределитель x должны сравниваться равными.
Эффекты: Переносит диапазон [до_первого + 1, до_последнего + 1] из списка x в этот список, после элемента, указанного prev_p.
Бросает: Ничто
Сложность: Константа.
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice_after(const_iteratorprev_p,slist&&x,
const_iteratorbefore_first,const_iteratorbefore_last,
size_typen)noexcept;
Требуется: prev_p должен быть действительным итератором этого. Перед_first и перед_last должны быть действительными итераторами x. prev_p не должен содержаться в [before_first, before_last] диапазоне. n == расстояние (before_first, before_last). Этот распределитель и распределитель x должны сравниваться равными.
Эффекты: Переносит диапазон [before_first + 1, before_last + 1] из списка x в этот список, после элемента, указанного prev_p.
Бросает: Ничто
Сложность:
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidremove(constT&value);
Эффекты: Удалите все элементы, которые сравниваются с величиной.
Бросает: Ничего.
Сложность: Линейное время. Он выполняет точное сравнение размеров () для равенства.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
template<typenamePred>voidremove_if(Predpred);
Эффекты: Удаляет все элементы, для которых удовлетворяется заданный предикат.
Бросок: Если предки бросают.
Сложность: Линейное время. Он выполняет точно размер() вызовов к предикату.
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
voidunique();
Эффекты: Удалите соседние дублирующие элементы или соседние элементы, которые равны из списка.
Бросок: Если сравнивать броски.
Сложность: Линейное время (размер()-1 сравнений равенства).
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
template<typenamePred>voidunique(Predpred);
Эффекты: Удаляет соседние дублирующие элементы или соседние элементы, удовлетворяющие некоторому двоичному предикату из списка.
Броски: Если предки бросают.
Сложность: Линейное время (размер()-1 сравнения вызывает пред()).
Примечание: Относительный порядок элементов, которые не удаляются, не изменяется, и итераторы элементов, которые не удаляются, остаются действительными.
voidmerge(slist&x);
Требуется: Списки x и * должны быть различными.
Эффекты: Эта функция удаляет все элементы x и вставляет их в порядок в соответствии со std::less. Слияние стабильно; то есть, если элемент из *это эквивалентно элементу из x, то элемент из *это будет предшествовать элементу из x.
Бросает: Если сравнивать броски.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
voidmerge(slist&&x);
Требуется: Списки x и * это должны быть различными.
Эффекты: Эта функция удаляет все элементы x и вставляет их в порядок в соответствии со std::less. Слияние стабильно; то есть, если элемент из *это эквивалентно элементу из x, то элемент из *это будет предшествовать элементу из x.
Бросает: Если сравнивать броски.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
template<typenameStrictWeakOrdering>
voidmerge(slist&x,StrictWeakOrderingcomp);
Требуется: p должна быть функцией сравнения, которая вызывает строгое слабое упорядочение, и оба *это и x должны быть отсортированы в соответствии с этим упорядочением. Списки x и * должны быть различными.
Эффекты: Эта функция удаляет все элементы x и вставляет их в *это. Слияние стабильно; то есть, если элемент из * это эквивалентно элементу из x, то элемент из * это будет предшествовать элементу из x.
Бросает: Если комп бросает.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
Примечание: Итераторы и ссылки на * это не являются недействительными.
template<typenameStrictWeakOrdering>
voidmerge(slist&&x,StrictWeakOrderingcomp);
Требуется: p должна быть функцией сравнения, которая вызывает строгую слабую упорядоченность, и как это, так и x должны быть отсортированы в соответствии с этой упорядоченностью. Списки x и * должны быть различными.
Эффекты: Эта функция удаляет все элементы x и вставляет их в *это. Слияние стабильно; то есть, если элемент из * это эквивалентно элементу из x, то элемент из * это будет предшествовать элементу из x.
Бросает: Если комп бросает.
Сложность: Эта функция является линейным временем: она выполняет максимум размер() + x.size() - 1 сравнение.
Примечание: Итераторы и ссылки на * это не являются недействительными.
voidsort();
Эффекты: Эта функция сортирует список *это согласно std::less. Сорт стабилен, то есть сохраняется относительный порядок эквивалентных элементов.
Броски:
Примечания: Итераторы и ссылки не являются недействительными.
Сложность: Количество сравнений приблизительно равно N log N, где N — размер списка.
template<typenameStrictWeakOrdering>voidsort(StrictWeakOrderingcomp);
Эффекты: Эта функция сортирует список *это согласно std::less. Сорт стабилен, то есть сохраняется относительный порядок эквивалентных элементов.
Бросок: Если комп бросает.
Примечания: Итераторы и ссылки не являются недействительными.
Сложность: Количество сравнений приблизительно равно N log N, где N — размер списка.
- <
voidreverse()noexcept;
>Эффекты: Обратный порядок элементов в списке
Бросает: Ничего.
Сложность: Эта функция является линейным временем.
Примечание: Итераторы и ссылки не являются недействительными
. template<class...Args>iteratoremplace(const_iteratorp,Args&&...args);
Эффекты: Вставляется объект типа Т, построенный с помощью std::forward(args)... до p
Бросает: Если выделение памяти бросает, или конструктор T бросает.
Сложность: Линейные элементы до p
iteratorinsert(const_iteratorp,constT&x);
Требуется: p должен быть действительным итератором этого.
Эффекты: Вставить копию x перед p.
Возвращает: итератор к вставленному элементу.
Бросок: Если выделение памяти бросает или копирует конструктор x.
Сложность: Линейные элементы до p.
iteratorinsert(const_iteratorprev_p,T&&x);
Требуется: p должен быть действительным итератором этого.
Эффекты: Вставьте новый элемент перед p с ресурсами x.
Возвращает: итератор на вставленный элемент.
Бросок: Если выделение памяти бросает.
Сложность: Линейные элементы до п.
iteratorinsert(const_iteratorp,size_typen,constvalue_type&x);
Требуется: p должен быть действительным итератором этого.
Эффекты: Вставить n копий x перед p.
Возвращение: итератор первого вставленного элемента или p, если n == 0.
Бросает: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Линейный к n плюс линейный к элементам до p.
template<typenameInIter>
iteratorinsert(const_iteratorp,InIterfirst,InIterlast);
Требуется: p должен быть действительным итератором этого.
Эффекты: Вставить копию [первого, последнего] диапазона перед p.
Возвращение: итератор первого вставленного элемента или p, если первый == последний.
Бросает: Если выделение памяти бросает, конструктор Т из отнесенного к делу InpIt бросает.
Сложность: Линейный к расстоянию [первый, последний] плюс линейный к элементам до p.
iteratorinsert(const_iteratorp,std::initializer_list<value_type>il);
Требуется: p должен быть действительным итератором этого.
Эффекты: Вставить копию диапазона [il.begin(), il.end()) перед p.
Возвращает: итератор к первому вставленному элементу или p, если il.begin() == il.end().
Бросает: Если выделение памяти бросает, конструктор Т из отнесенного к делу std::initializer_list iterator throws.
Сложность: Линейный к диапазону [il.begin(), il.end()) плюс линейный к элементам до p.
iteratorerase(const_iteratorp)noexcept;
Требуется: p должен быть действительным итератором этого.
Эффекты: Стирает элемент по п.
Бросает: Ничего.
Сложность: Линейное число элементов до стр.
iteratorerase(const_iteratorfirst,const_iteratorlast)noexcept;
Требует: первый и последний должны быть действительным итератором элементов в *это.
Эффекты: Стирает элементы, указанные [первым, последним].
Бросает: Ничего.
Сложность: Линейное расстояние между первым и последним плюс линейное к элементам перед первым.
voidsplice(const_iteratorp,slist&x)noexcept;
Требуется: p должен указывать на элемент, содержащийся в списке. x!= *это. этот распределитель и распределитель x должны сравнивать равные
Эффекты: Переносит все элементы списка x в этот список перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются.
Броски: Ничто
Сложность: Линейный в расстоянии (begin(), p) и линейный в x.size().
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
- <
voidsplice(const_iteratorp,slist&&x)noexcept;
>Требуется: p должен указывать на элемент, содержащийся в списке. x!= *это. этот распределитель и распределитель x должны сравнивать равные
эффекты: Переносит все элементы списка x в этот список перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются.
Броски: Ничего
Сложность: Линейный в расстоянии (begin(), p) и линейный в x.size().
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice(const_iteratorp,slist&x,const_iteratori)noexcept;
Требуется: p должен указывать на элемент, содержащийся в этом списке. Я должен указать на элемент, содержащийся в списке x. Этот распределитель и распределитель x должны сравнивать равные
Эффекты: Переносит значение, указанное i, из списка x в этот список, перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются. Если p == i или p == ++i, эта функция является нулевой операцией.
Броски: Ничего
Сложность: Линейный в расстоянии (начало(), р) и в расстоянии (x.begin(), i).
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice(const_iteratorp,slist&&x,const_iteratori)noexcept;
Требуется: p должен указывать на элемент, содержащийся в этом списке. Я должен указать на элемент, содержащийся в списке x. Этот распределитель и распределитель x должны сравниваться равными.
Эффекты: Переносит значение, указанное i, из списка x в этот список, перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются. Если p == i или p == ++i, эта функция является нулевой операцией.
Броски: Ничто
Сложность: Линейный в расстоянии (начало(), р) и в расстоянии (x.begin(), i).
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice(const_iteratorp,slist&x,const_iteratorfirst,
const_iteratorlast)noexcept;
Требуется: p должен указывать на элемент, содержащийся в этом списке. Первый и последний должны указывать на элементы, содержащиеся в списке x.
Эффекты: Переносит диапазон, указанный первым и последним из списка x в этот список, перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются. Этот распределитель и распределитель x должны сравниваться равными.
Броски: Ничто
Сложность: Линейный в расстоянии (начало(), р), в расстоянии (x.begin(), первый), и в расстоянии (первый, последний).
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.
voidsplice(const_iteratorp,slist&&x,const_iteratorfirst,
const_iteratorlast)noexcept;
Требуется: p должен указывать на элемент, содержащийся в этом списке. Первый и последний должны указывать на элементы, содержащиеся в списке x. Этот распределитель и распределитель x должны сравнивать равные
эффекты: Переносит диапазон, указанный первым и последним из списка x в этот список, перед элементом, указанным p. Ни разрушители, ни конструкторы копий не называются.
Броски: Ничто
Сложность: Линейный в расстоянии (начало(), р), в расстоянии (x.begin(), первый), и в расстоянии (первый, последний).
Примечание: Итераторы значений, полученных из списка x, теперь указывают на элементы этого списка. Итераторы этого списка и все ссылки не являются недействительными.