最終更新日時: 2022年10月06日 18時26分35秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<string>

# std::basic_string::resize

    void resize(size_type n, charT c);           // (1) C++03
    constexpr void resize(size_type n, charT c); // (1) C++20

    void resize(size_type n);                    // (2) C++03
    constexpr void resize(size_type n);          // (2) C++20

## 概要

文字列の長さを変更する。

## 要件

`n <= max_size()`

## 効果

- `n <= size()` のとき、元の文字列末尾の`size() - n`要素を削除する。
- `n > size()` のとき、`n - size()`個の`c`を元の文字列末尾にコピーして追加する

`resize(n)` は、 `resize(n, charT())` と等しい。

## 戻り値

なし

## 例外

`n > max_size()` の時、`length_error` 例外を投げる。

## 例

    #include <iostream>
    #include <string>

    int main()
    {
      std::string s = "hello";

      // sの長さを10に変更。大きくなった場所には'x'を埋める。
      s.resize(10, 'x');

      std::cout << s << std::endl;
    }

### 出力

    helloxxxxx

## 参照

- LWG Issue 2318 `basic_string`'s wording has confusing relics from the copy-on-write era
- P1148R0 Cleaning up Clause 20
- P0980R1 Making `std::string` constexpr