最終更新日時: 2026年03月30日 18時31分10秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<inplace_vector>

# std::inplace_vector::resize(C++26)

    constexpr void resize(size_type sz);              // (1) C++26
    constexpr void resize(size_type sz, const T& c);  // (2) C++26

## 概要

要素数を変更する。

- (1) : 要素数を`sz`に変更する。増加分は値初期化される。
- (2) : 要素数を`sz`に変更する。増加分は`c`のコピーで初期化される。

## 効果

- `sz`が現在の`size()`より小さい場合、後ろから`size() - sz`個の要素を削除する。
- `sz`が現在の`size()`より大きい場合:
  - (1) : `sz - size()`個の値初期化された要素を追加する。
  - (2) : `sz - size()`個の`c`のコピーを追加する。

## 例外

`sz > N`の場合、`std::bad_alloc` 例外を送出する。

## 戻り値

なし

## 例

    #include <print>
    #include <inplace_vector>

    int main()
    {
      // 増加
      {
        std::inplace_vector<int, 10> iv = {3, 1, 4};
        iv.resize(5);
        for (int x : iv) std::print("{} ", x);
        std::println("");
      }

      // 減少
      {
        std::inplace_vector<int, 10> iv = {3, 1, 4};
        iv.resize(1);
        for (int x : iv) std::print("{} ", x);
        std::println("");
      }
    }

### 出力

    3 1 4 0 0
    3

## バージョン

### 言語

- C++26

### 処理系

- Clang: 23 ✅
- GCC: 16 ✅
- Visual C++: 2026 Update 2 ❌

## 参照

- P0843R14 `inplace_vector`