std::inplace_vector<T,N>::unchecked_push_back
С ru.cppreference.net
constexpr reference unchecked_push_back( const T& value );
|
(1) | (начиная с C++26) |
constexpr reference unchecked_push_back( T&& value );
|
(2) | (начиная с C++26) |
Добавляет данный элемент value в конец контейнера.
Эквивалентно: return *try_push_back(std::forward<decltype(value)>(value));
1) Новый элемент инициализируется как копия
value.2)
value перемещается в новый элемент.Перед вызовом этих функций size() < capacity() должно быть true. В противном случае поведение не определено.
Никакие итераторы или ссылки не инвалидируются, кроме end(), который инвалидируется, если происходит вставка.
Параметры
| value | - | значение элемента для добавления |
| Требования к типам | ||
-
T
должен соответствовать требованиям
CopyInsertable
для использования перегрузки (1).
|
||
-
T
должен соответствовать требованиям
MoveInsertable
для использования перегрузки (2).
|
||
Возвращаемое значение
back()
, т.е. ссылка на вставленный элемент.
Сложность
Константа.
Исключения
Любое исключение, вызванное инициализацией вставляемого элемента.
Если исключение выбрасывается по любой причине, эти функции не оказывают никакого эффекта ( strong exception safety guarantee ).
Примечания
|
Этот раздел не завершен
Причина: Объясните назначение данного API. |
Пример
Запустить этот код
#include <cassert> #include <inplace_vector> #include <string> int main() { std::inplace_vector<std::string, 2> fauna; std::string dog{"dog"}; auto& r1 = fauna.unchecked_push_back("cat"); // перегрузка (1) assert(r1 == "cat" and fauna.size() == 1); auto& r2 = fauna.unchecked_push_back(std::move(dog)); // перегрузка (2) assert(r2 == "dog" and fauna.size() == 2); assert(fauna[0] == "cat" and fauna[1] == "dog"); // fauna.unchecked_push_back("bug"); // неопределенное поведение: нет места }
Смотрите также
|
добавляет элемент в конец
(public member function) |
|
|
создаёт элемент на месте в конце
(public member function) |
|
|
добавляет диапазон элементов в конец
(public member function) |
|
|
пытается добавить элемент в конец
(public member function) |
|
|
пытается создать элемент на месте в конце
(public member function) |
|
|
пытается добавить диапазон элементов в конец
(public member function) |
|
|
безусловно создаёт элемент на месте в конце
(public member function) |
|
|
удаляет последний элемент
(public member function) |
|
|
создаёт
std::back_insert_iterator
типа, выведенного из аргумента
(function template) |