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

履歴 編集

function
<inplace_vector>

std::inplace_vector::assign(C++26)

template <class InputIterator>
constexpr void assign(InputIterator first, InputIterator last); // (1) C++26

constexpr void assign(size_type n, const T& u);                 // (2) C++26

constexpr void assign(initializer_list<T> il);                  // (3) C++26

概要

コンテナの再代入。

  • (1) : イテレータ範囲[first, last)の要素で既存の要素を置き換える。
  • (2) : n個のuのコピーで既存の要素を置き換える。
  • (3) : 初期化子リストilの要素で既存の要素を置き換える。

効果

  • (1) : *thisの全要素を破棄し、イテレータ範囲[first, last)の要素で置き換える。
  • (2) : *thisの全要素を破棄し、n個のuのコピーで置き換える。
  • (3) : *thisの全要素を破棄し、ilの要素で置き換える。

例外

戻り値

なし

#include <print>
#include <inplace_vector>

int main()
{
  std::inplace_vector<int, 10> iv = {1, 2, 3};

  // (1) イテレータ範囲で再代入
  int arr[] = {10, 20, 30, 40};
  iv.assign(std::begin(arr), std::end(arr));
  for (int x : iv) std::print("{} ", x);
  std::println("");

  // (2) n個の値で再代入
  iv.assign(3, 99);
  for (int x : iv) std::print("{} ", x);
  std::println("");

  // (3) 初期化子リストで再代入
  iv.assign({5, 6, 7});
  for (int x : iv) std::print("{} ", x);
  std::println("");
}

出力

10 20 30 40
99 99 99
5 6 7

バージョン

言語

  • C++26

処理系

参照