最終更新日時(UTC):
が更新

履歴 編集

function
<deque>

std::deque::resize

void resize(size_type sz);                   // (1) : C++11
void resize(size_type sz, const T& c);       // (2) : C++11
void resize(size_type sz, const T& c = T()); // (1) + (2) : C++03

概要

要素数を変更する

要件

  • (1) :

    • Tデフォルト構築可能であること
    • T*thisに対してコピー挿入可能であること (C++11まで)
    • T*thisに対してムーブ挿入が可能であること (C++14)
  • (2) :

    • T*thisに対してコピー挿入可能であること

効果

  • (1) :

    • もしszが現在のコンテナのsize()より小さい場合、以下の動作をする:
    • もしszが現在のコンテナのsize()より大きい場合、sz - size()個だけ値初期化されたT型オブジェクトのコピーを追加する。
  • (2) :

    • C++11まで

    if (sz > size())
      insert(end(), sz - size(), c);
    else if (sz < size())
      erase(begin() + sz, end());
    

    • C++14
      • もしszが現在のコンテナのsize()より小さい場合、pop_back()関数をsize() - sz回呼ぶ
      • もしszが現在のコンテナのsize()より大きい場合、sz - size()個だけオブジェクトcのコピーを追加する。
    • C++17以降
      • もしszが現在のコンテナのsize()より小さい場合、後ろからsize() - sz個の要素を削除する
      • そうでなければ、sz - size()個だけオブジェクトcのコピーを追加する。

戻り値

なし

#include <iostream>
#include <deque>

int main()
{
  // 増加
  {
    std::deque<int> c = {3, 1, 4};
    c.resize(5);

    for (int x : c) {
      std::cout << x << std::endl;
    }
  }
  std::cout << std::endl;

  // 減少
  {
    std::deque<int> c = {3, 1, 4};
    c.resize(1);

    for (int x : c) {
      std::cout << x << std::endl;
    }
  }
}

出力

3
1
4
0
0

3

参照

関連項目

名前 説明
size 要素数を取得する