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

履歴 編集

function
<deque>

std::deque::assign

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) C++11

概要

コンテナに値を代入する。

効果

  • (1) : *thisの全ての要素を解放し、イテレータ範囲[first, last)の要素のコピーを*thisにコピーする。
  • (2) : *thisの全ての要素が解放され、tオブジェクトのn個のコピーから*thisを再構築する。
  • (3) : *thisの全ての要素を解放し、initの全ての要素を*thisにコピーする。

#include <iostream>
#include <deque>

template <class T>
void print(const char* name, const std::deque<T>& c)
{
  std::cout << name << " : {";
  for (const T& x : c) {
    std::cout << x << " ";
  }
  std::cout << "}" << std::endl;
}

int main ()
{
  std::deque<int> c = {1, 2, 3};

  // イテレータ範囲の代入
  std::deque<int> c1;
  c1.assign(c.begin(), c.end());

  // 値1を持つオブジェクト3個から再構築
  std::deque<int> c2;
  c2.assign(3, 1);

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

  print("c1", c1);
  print("c2", c2);
  print("c3", c3);
}

出力

c1 : {1 2 3 }
c2 : {1 1 1 }
c3 : {1 2 3 }

参照