最終更新日時:
が更新

履歴 編集

function
<forward_list>

std::forward_list::assign(C++11)

template <class InputIterator>
void assign(InputIterator first, InputIterator last); // (1)

void assign(size_type n, const T& t);                 // (2)

void assign(initializer_list<T> init);                // (3)

概要

コンテナの再代入

  • (1) : 範囲を代入。
  • (2) : n個の値tを代入。
  • (3) : 初期化子リストを代入。

効果

  • (1) :

clear();
insert_after(before_begin(), first, last);

  • (2) :

clear();
insert_after(before_begin(), n, t);

  • (3) : 以下と同等

assign(init.begin(), init.end());

戻り値

なし

#include <iostream>
#include <forward_list>
#include <string>

template <class T>
void print(const std::string& name, const std::forward_list<T>& ls)
{
  std::cout << name << " : ";
  for (const T& x : ls) {
    std::cout << x << ' ';
  }
  std::cout << std::endl;
}

int main()
{
  // 範囲を代入
  {
    std::forward_list<int> ls = {1, 2, 3};
    std::forward_list<int> ls1;
    ls1.assign(ls.begin(), ls.end());

    print("ls1", ls1);
  }

  // n個の指定された値で埋める
  {
    std::forward_list<int> ls2;
    ls2.assign(3, 1);

    print("ls2", ls2);
  }

  // 初期化子リストを代入
  {
    std::forward_list<int> ls3;
    ls3.assign({1, 2, 3});

    print("ls3", ls3);
  }
}

出力

ls1 : 1 2 3 
ls2 : 1 1 1 
ls3 : 1 2 3 

バージョン

言語

  • C++11

処理系

参照