std::inplace_vector<T,N>:: push_back
From cppreference.net
<
cpp
|
container
|
inplace vector
|
constexpr
reference push_back
(
const
T
&
value
)
;
|
(1) | (начиная с C++26) |
|
constexpr
reference push_back
(
T
&&
value
)
;
|
(2) | (начиная с C++26) |
Добавляет заданный элемент value в конец контейнера.
1)
Новый элемент инициализируется как копия
value
.
2)
value
перемещается в новый элемент.
Никакие итераторы или ссылки не инвалидируются, за исключением
end()
, который инвалидируется, если происходит вставка.
Содержание |
Параметры
| value | - | значение элемента для добавления |
| Требования к типу | ||
-
T
должен соответствовать требованиям
CopyInsertable
для использования перегрузки (1).
|
||
-
T
должен соответствовать требованиям
MoveInsertable
для использования перегрузки (2).
|
||
Возвращаемое значение
back()
, т.е. ссылка на вставленный элемент.
Сложность
Константа.
Исключения
- std::bad_alloc если size ( ) == capacity ( ) до вызова.
- Любое исключение, вызванное инициализацией вставляемого элемента.
Если исключение выбрасывается по любой причине, эти функции не оказывают никакого эффекта ( strong exception safety guarantee ).
Пример
Запустить этот код
#include <inplace_vector> #include <new> #include <print> #include <string> int main() { std::inplace_vector<std::string, 2> fauna; std::string dog{"\N{DOG}"}; fauna.push_back("\N{CAT}"); // перегрузка (1) fauna.push_back(std::move(dog)); // перегрузка (2) std::println("fauna = {}", fauna); try { fauna.push_back("\N{BUG}"); // выбрасывает исключение: нет места } catch(const std::bad_alloc& ex) { std::println("{}", ex.what()); } std::println("fauna = {}", fauna); }
Возможный вывод:
fauna = ["🐈", "🐕"] std::bad_alloc fauna = ["🐈", "🐕"]
Смотрите также
|
создаёт элемент на месте в конце
(публичная функция-член) |
|
|
добавляет диапазон элементов в конец
(публичная функция-член) |
|
|
пытается добавить элемент в конец
(публичная функция-член) |
|
|
пытается создать элемент на месте в конце
(публичная функция-член) |
|
|
пытается добавить диапазон элементов в конец
(публичная функция-член) |
|
|
безусловно добавляет элемент в конец
(публичная функция-член) |
|
|
безусловно создаёт элемент на месте в конце
(публичная функция-член) |
|
|
удаляет последний элемент
(публичная функция-член) |
|
|
создаёт
std::back_insert_iterator
типа, выведенного из аргумента
(шаблон функции) |