std::inplace_vector<T,N>::resize
constexpr void resize( size_type count ); | (1) | (начиная с C++26) |
constexpr void resize( size_type count, const value_type& value ); | (2) | (начиная с C++26) |
Изменяет размер контейнера так, чтобы он содержал count элементов; ничего не делает, если count == size().
Если текущий размер больше count, контейнер сокращается до первых count элементов.
Если текущий размер меньше count, то:
1) Добавляются дополнительные элементы, вставленные по умолчанию.
2) Добавляются дополнительные копии
value.Параметры
| count | - | новый размер контейнера |
| value | - | значение, которым инициализируются новые элементы |
| Требования к типам | ||
-T должен соответствовать требованиям DefaultInsertable, чтобы использовать перегрузку (1). |
||
-T должен соответствовать требованиям CopyInsertable, чтобы использовать перегрузку (2). |
||
Сложность
Линейная относительно разницы между текущим размером и count.
Исключения
Если по какой-либо причине выбрасывается исключение, эти функции не оказывают никакого эффекта (гарантия строгой безопасности исключений).
Пример
#include <inplace_vector>
#include <print>
int main()
{
std::inplace_vector<int, 6> v(6, 9);
std::println("Initially, v = {}", v);
v.resize(2);
std::println("After resize(2), v = {}", v);
v.resize(4);
std::println("After resize(4), v = {}", v);
v.resize(6, -1);
std::println("After resize(6, -1), v = {}", v);
try
{
std::print("Trying resize(13): ");
v.resize(13); // throws, because count > N; v is left unchanged
}
catch(const std::bad_alloc& ex)
{
std::println("ex.what(): {}", ex.what());
}
std::println("After exception, 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]
См. также
|
[статический] | возвращает максимально возможное количество элементов (открытая статическая функция-член) |
| возвращает количество элементов (открытая функция-член) |
|
|
[статический] | возвращает количество элементов, которое может вместить выделенное хранилище (открытая статическая функция-член) |
| проверяет, пуст ли контейнер (открытая функция-член) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/container/inplace_vector/resize