std::inplace_vector<T,N>::unchecked_push_back
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));
value.value перемещается в новый элемент.Перед вызовом этих функций size() < capacity() должен быть true. В противном случае поведение не определено.
Итераторы и ссылки не инвалидируются, за исключением end(), который инвалидируется, если происходит вставка.
Параметры
| value | - | значение добавляемого элемента |
| Требования к типам | ||
-T должен соответствовать требованиям CopyInsertable для использования перегрузки (1). |
||
-T должен соответствовать требованиям MoveInsertable для использования перегрузки (2). |
||
Возвращаемое значение
back(), то есть ссылка на вставленный элемент.
Сложность
Постоянная.
Исключения
Любое исключение, выброшенное при инициализации вставляемого элемента.
Если по какой-либо причине выбрасывается исключение, эти функции не оказывают никакого эффекта (гарантия строгой безопасности исключений).
Примечания
Пример
#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"); // overload (1)
assert(r1 == "cat" and fauna.size() == 1);
auto& r2 = fauna.unchecked_push_back(std::move(dog)); // overload (2)
assert(r2 == "dog" and fauna.size() == 2);
assert(fauna[0] == "cat" and fauna[1] == "dog");
// fauna.unchecked_push_back("bug"); // undefined behavior: there is no space
}
См. также
| добавляет элемент в конец (открытая функция-член) |
|
| создаёт элемент непосредственно в конце (открытая функция-член) |
|
| добавляет диапазон элементов в конец (открытая функция-член) |
|
| пытается добавить элемент в конец (открытая функция-член) |
|
| пытается создать элемент непосредственно в конце (открытая функция-член) |
|
| пытается добавить диапазон элементов в конец (открытая функция-член) |
|
| безусловно создаёт элемент непосредственно в конце (открытая функция-член) |
|
| удаляет последний элемент (открытая функция-член) |
|
создаёт std::back_insert_iterator типа, выводимого из аргумента (шаблон функции) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/inplace_vector/unchecked_push_back