std::inplace_vector<T,N>:: resize
From cppreference.net
<
cpp
|
container
|
inplace vector
|
constexpr
void
resize
(
size_type count
)
;
|
(1) | (начиная с C++26) |
|
constexpr
void
resize
(
size_type count,
const
value_type
&
value
)
;
|
(2) | (начиная с C++26) |
Изменяет размер контейнера для хранения count элементов:
- Если count равен текущему размеру, ничего не делает.
- Если текущий размер больше count , контейнер сокращается до первых count элементов.
- Если текущий размер меньше count , тогда:
1)
Дополнительные
default-inserted
элементы добавляются в конец.
2)
Дополнительные копии
value
добавляются.
Содержание |
Параметры
| count | - | новый размер контейнера |
| value | - | значение для инициализации новых элементов |
| Требования к типу | ||
|
-
|
||
Сложность
Линейно по разнице между текущим размером и count .
Исключения
Если исключение выбрасывается по любой причине, эти функции не оказывают никакого эффекта ( strong exception safety guarantee ).
Пример
Запустить этот код
#include <inplace_vector> #include <print> int main() { std::inplace_vector<int, 6> v(6, 9); std::println("Изначально, v = {}", v); v.resize(2); std::println("После resize(2), v = {}", v); v.resize(4); std::println("После resize(4), v = {}", v); v.resize(6, -1); std::println("После resize(6, -1), v = {}", v); try { std::print("Попытка resize(13): "); v.resize(13); // выбрасывает исключение, потому что count > N; v остается неизменным } catch(const std::bad_alloc& ex) { std::println("ex.what(): {}", ex.what()); } std::println("После исключения, v = {}", v); }
Возможный вывод:
Initially, v = [9, 9, 9, 9, 9, 9] After resize(2), v = [9, 9] After resize(4), v = [9, 9, 0, 0] After resize(6, -1), v = [9, 9, 0, 0, -1, -1] Trying resize(13): ex.what(): std::bad_alloc After exception, v = [9, 9, 0, 0, -1, -1]
Смотрите также
|
[static]
|
возвращает максимально возможное количество элементов
(публичная статическая функция-член) |
|
возвращает количество элементов
(публичная функция-член) |
|
|
[static]
|
возвращает количество элементов, которое может содержаться в выделенной в данный момент памяти
(публичная статическая функция-член) |
|
проверяет, является ли контейнер пустым
(публичная функция-член) |