voidassign(size_typen,constT&val);
Эффекты: Присваивает n копий вал к *этому.
Бросает: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Линейный к n.
template<typenameInIt>voidassign(InItfirst,InItlast);
Эффекты: Назначает диапазон [первый, последний] к *этому.
Бросает: Если выделение памяти бросает или T-конструктор от отсылки к InIt бросает.
Сложность: Линейный к n.
voidassign(std::initializer_list<value_type>il);
Эффекты: Назначает диапазон [il.begin(), il.end()) на *это.
Бросает: Если выделение памяти выбрасывает или T-конструктор из дереференции std::initializer_list итератор бросает.
Сложность: Линейный размер ().
allocator_typeget_allocator()constnoexcept;
Эффекты: Вернет копию внутреннего распределителя.
Бросает: Если копировщик распределителя бросит.
Сложность: Постоянная.
conststored_allocator_type&get_stored_allocator()constnoexcept;
Эффекты: Возвращает ссылку на внутренний распределитель.
Бросает: Ничто
Сложность: Постоянная.
Примечание: Нестандартное расширение.
stored_allocator_type&get_stored_allocator()noexcept;
Эффекты: Возвращает ссылку на внутренний распределитель.
Броски: Ничто
Сложность: Константа.
Примечание: Нестандартное расширение.
iteratorbegin()noexcept;
Эффекты: Возвращает итератор к первому элементу, содержащемуся в деке.
Бросает: Ничего.
Сложность: Постоянно.
const_iteratorbegin()constnoexcept;
Эффекты: Возвращает const_iterator к первому элементу, содержащемуся в деке.
Бросает: Ничего.
Сложность: Постоянная.
iteratorend()noexcept;
Эффекты: Возвращает итератор в конец дека.
Бросает: Ничего.
Сложность: Постоянная.
const_iteratorend()constnoexcept;
Эффекты: Возвращает const_iterator в конец дека.
Бросает: Ничего.
Сложность: Постоянная.
reverse_iteratorrbegin()noexcept;
: Возвращает обратный_iterator, указывающий на начало обратного знака.
Бросок: Ничего.
Сложность: Постоянно.
const_reverse_iteratorrbegin()constnoexcept;
Эффекты: Возвращает const_reverse_iterator, указывающий на начало обратного деке.
Бросает: Ничего.
Сложность: Постоянство.
reverse_iteratorrend()noexcept;
Эффекты: Возвращает обратный_iterator, указывающий на конец обратного знака.
Бросок: Ничего.
Сложность: Постоянно.
const_reverse_iteratorrend()constnoexcept;
Эффекты: Возвращает const_reverse_iterator, указывающий на конец обратного знака.
Бросок: Ничего.
Сложность: Постоянная.
const_iteratorcbegin()constnoexcept;
Эффекты: Возвращает const_iterator к первому элементу, содержащемуся в деке.
Бросок: Ничего.
Сложность: Постоянная.
const_iteratorcend()constnoexcept;
Эффекты: Возвращает const_iterator в конец дека.
Бросает: Ничего.
Сложность: Постоянная.
const_reverse_iteratorcrbegin()constnoexcept;
Эффекты: Возвращает const_reverse_iterator, указывающий на начало обратного деке.
Бросает: Ничего.
Сложность: Постоянная.
- <
const_reverse_iteratorcrend()constnoexcept;
>Эффекты: Возвращает const_reverse_iterator, указывающий на конец обратного деке.
Бросает: Ничего.
Сложность: Постоянная.
boolempty()constnoexcept;
Эффекты: Возвращается верно, если деке не содержит элементов.
Бросок: Ничего.
Сложность: Постоянно.
size_typesize()constnoexcept;
Эффекты: Возвращает количество элементов, содержащихся в деке.
Бросок: Ничего.
Сложность: Постоянная.
size_typemax_size()constnoexcept;
Эффекты: Возвращает максимально возможный размер дека.
Бросок: Ничего.
Сложность: Постоянно.
voidresize(size_typenew_size);
Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы инициализируются.
Бросок: Если выделение памяти бросает, или конструктор Т бросает.
Сложность: Линейная разница между размером () и новым размером.
- <
voidresize(size_typenew_size,default_init_t);
>Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы инициализируются по умолчанию.
Бросок: Если выделение памяти бросает, или конструктор Т бросает.
Сложность: Линейная разница между размером () и новым размером.
Примечание: Нестандартное расширение
voidresize(size_typenew_size,constvalue_type&x);
Эффекты: Вставляет или стирает элементы в конце так, что размер становится n. Новые элементы копируются из x.
Броски: Если отбрасывает выделение памяти, или отбрасывает конструктор копий Т.
Сложность: Линейная разница между размером () и новым размером.
voidshrink_to_fit();
Эффекты: Пытается справиться с избытком памяти, созданной с помощью предыдущих выделений. Размер дека не изменился
Бросок: Если отбрасывает память.
Сложность: Постоянная.
referencefront()noexcept;
Требует:!empty()
Эффекты: Возвращает ссылку на первый элемент контейнера.
Бросок: Ничего.
Сложность: Постоянная.
- <
const_referencefront()constnoexcept;
>Требует:!empty()
Эффекты: Возвращает ссылку на первый элемент из начала контейнера.
Бросает: Ничего.
Сложность: Постоянная.
referenceback()noexcept;
Требует:!empty()
Эффекты: Возвращает ссылку на последний элемент контейнера.
Бросок: Ничего.
Сложность: Постоянная.
const_referenceback()constnoexcept;
Требует:!empty()
Эффекты: Возвращает ссылку на последний элемент контейнера.
Бросок: Ничего.
Сложность: Постоянная.
referenceoperator[](size_typen)noexcept;
Требует: размер() >n.
Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.
Бросает: Ничего.
Сложность: Постоянная.
const_referenceoperator[](size_typen)constnoexcept;
Требует: размер() >n.
Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.
Бросок: Ничего.
Сложность: Постоянная.
iteratornth(size_typen)noexcept;
Требуется: размер() >= n.
Эффекты: Возвращает итератор к n-му элементу от начала контейнера. Возвращает конец(), если n == размер().
Бросок: Ничего.
Сложность: Константа.
Примечание: Нестандартное расширение
const_iteratornth(size_typen)constnoexcept;
Требует: размер() >= n.
Эффекты: Возвращает const_iterator к n-му элементу с начала контейнера. Возвращает конец(), если n == размер().
Бросает: Ничего.
Сложность: Константа.
Примечание: Нестандартное расширение
size_typeindex_of(iteratorp)noexcept;
Требуется: start()<= p<= end().
Эффекты: Возвращает индекс элемента, указанный p и размером(), если p == конец().
Бросает: Ничего.
Сложность: Постоянная.
Примечание: Нестандартное расширение
size_typeindex_of(const_iteratorp)constnoexcept;
Требуется: start()<= p<= end().
: Возвращает индекс элемента, указываемого p и размером(), если p == конец().
Бросает: Ничего.
Сложность: Константа.
Примечание: Нестандартное расширение
referenceat(size_typen);
Требует: размер() >n.
Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.
Бросает: std::range_error если n>= размер()
Сложность: Постоянная.
const_referenceat(size_typen)const;
Требует: размер() >n.
Эффекты: Возвращает ссылку на n-й элемент из начала контейнера.
Бросок: Разработчик:range_error если n>= размер()
Сложность: Постоянная.
template<class...Args>referenceemplace_front(Args&&...args);
Эффекты: Вставляется объект типа Т, построенный с помощью std::forward(args)... в начале дека.
Возвращение: Ссылка на созданный объект.
Бросает: Если распределение памяти бросает или конструктор на месте бросает.
Сложность: Амортизированное постоянное время
template<class...Args>referenceemplace_back(Args&&...args);
Эффекты: Вставляется объект типа Т, построенный с помощью std::forward(args)... в конце дека.
Возвращение: Ссылка на созданный объект.
Бросок: Если распределение памяти бросает или конструктор на месте бросает.
Сложность: Амортизированное постоянное время
template<class...Args>iteratoremplace(const_iteratorp,Args&&...args);
Требуется: p должен быть действительным итератором *этого.
Эффекты: Вставляется объект типа Т, построенный с помощью std::forward(args)... до p
Бросает: Если распределение памяти бросает или конструктор на месте бросает.
Сложность: Если p - конец (), амортизированное постоянное время Линейное время в противном случае.
voidpush_front(constT&x);
Эффекты: Вставляет копию x в передней части дека.
Бросает: Если выделение памяти бросит или конструктор копий Т бросит.
Сложность: Амортизированное постоянное время.
voidpush_front(T&&x);
Эффекты: Конструирует новый элемент в передней части дека и перемещает ресурсы x в этот новый элемент.
Бросок: Если выделение памяти бросает.
Сложность: Амортизированное постоянное время.
voidpush_back(constT&x);
Эффекты: Вставляет копию x в конце дека.
Бросает: Если броски памяти или броски конструктора копии Т.
Сложность: Амортизированное постоянное время.
voidpush_back(T&&x);
Эффекты: Конструирует новый элемент в конце знака и перемещает ресурсы x к этому новому элементу.
Бросок: Если выделение памяти бросает.
Сложность: Амортизированное постоянное время.
iteratorinsert(const_iteratorp,constT&x);
Требуется: p должен быть действительным итератором этого.
Эффекты: Вставить копию x перед p.
Возвращает: итератор к вставленному элементу.
Бросок: Если выделение памяти бросает или копирует конструктор x.
Сложность: Если p - конец (), амортизированное постоянное время Линейное время в противном случае.
iteratorinsert(const_iteratorp,T&&x);
Требуется: p должен быть действительным итератором этого.
Эффекты: Вставьте новый элемент перед p с ресурсами x.
Возвращение: Итератор к вставленному элементу.
Бросок: Если выделение памяти бросает.
Сложность: Если p - конец (), амортизированное постоянное время Линейное время в противном случае.
iteratorinsert(const_iteratorpos,size_typen,constvalue_type&x);
Требуется:
Эффекты: Вставить n копий x перед pos.
Возвращение: итератор к первому вставленному элементу или посу, если n равно 0.
Бросает: Если броски памяти или броски конструктора копии Т.
Сложность: Линейный к n.
template<typenameInIt>
iteratorinsert(const_iteratorpos,InItfirst,InItlast);
Требуется:
Эффекты: Вставить копию [первого, последнего] диапазона перед pos.
Возвращение: итератор к первому вставленному элементу или позу, если первый == последний.
Бросает: Если выделение памяти бросает, конструктор T из отнесенного к нему InIt бросает или конструктор копии T бросает.
Сложность: Линейное расстояние (первое, последнее).
iteratorinsert(const_iteratorpos,std::initializer_list<value_type>il);
Требуется:
Эффекты: Вставить копию диапазона [il.begin(), il.end()) перед pos.
Возвращение: итератор первого вставленного элемента или поса, если il.begin() == il.end().
Бросает: Если выделение памяти бросает, то T's constructor из отнесенного к разряду std::initializer_list бросает или T's copy constructor throws.
Сложность: Линейное расстояние [il.begin(), il.end()).
voidpop_front()noexcept;
Эффекты: Удаляет первый элемент с дека.
Бросает: Ничего.
Сложность: Постоянное время.
voidpop_back()noexcept;
Эффекты: Удаляет последний элемент с дека.
Бросает: Ничего.
Сложность: Постоянное время.
iteratorerase(const_iteratorpos)noexcept;
Эффекты: Стирает элемент по п.
Бросает: Ничего.
Сложность: Линейный к элементам между pos и последним элементом (если pos находится вблизи конца) или первый элемент, если (pos находится вблизи начала). Постоянны, если по является первым или последним элементом.
iteratorerase(const_iteratorfirst,const_iteratorlast)noexcept;
Эффекты: Стирает элементы, указанные [первым, последним]
Бросает: Ничего.
Сложность: Линейный к расстоянию между первым и последним плюс элементы между pos и последним элементом (если pos находится вблизи конца) или первый элемент если (pos находится вблизи начала).
voidswap(deque&x)noexcept(allocator_traits_type::propagate_on_container_swap::value||allocator_traits_type::is_always_equal::value));
Эффекты: Измените содержание *это и x.
Бросает: Ничего.
Сложность: Постоянная.
voidclear()noexcept;
Эффекты: Стирает все элементы дека.
Бросает: Ничего.
Сложность: Линейный по количеству элементов в деке.