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

履歴 編集

function
<map>

std::map::operator=

map& operator=(const map& x);                      // (1) C++03
map& operator=(map&& x);                           // (2) C++11
map& operator=(map&& x)
  noexcept(allocator_traits<Allocator>::is_always_equal::value
            && is_nothrow_move_assignable<Compare>::value); (2) // C++17
map& operator=(initializer_list<value_type> init); // (3) C++11

概要

  • (1) : コピー代入
  • (2) : ムーブ代入
  • (3) : 初期化子リストの代入

効果

  • (1) : 同じテンプレートパラメータを持つmapクラスのオブジェクトをコピー代入する。*thisの全ての要素が解放され、xの全ての要素が*thisにコピーされる。
  • (2) : 同じテンプレートパラメータを持つmapクラスのオブジェクトをムーブ代入する。*thisの全ての要素が解放され、xの全ての要素が*thisにムーブされる。
  • (3) : 同じテンプレートパラメータを持つinitializer_listクラスのオブジェクトをコピー代入する。*thisの全ての要素が解放され、initの全ての要素が*thisにコピーされる。

戻り値

*this

事後条件

  • (1) : *this == x
  • (2) : *thisは元々のxと等値となる
  • (3) : *this == map{init}

計算量

  • (1) : 全要素のデストラクタ呼び出しとコピーを行うために、線形時間
  • (2) : 全要素のデストラクタ呼び出しをするために、線形時間
  • (3) : 全要素のデストラクタ呼び出しとコピーを行うために、線形時間

#include <iostream>
#include <map>

int main()
{
  std::pair<int,char> values[] = {
    std::make_pair(5,'e'),
    std::make_pair(2,'b'),
    std::make_pair(4,'d'),
    std::make_pair(1,'a'),
    std::make_pair(1,'a'),
    std::make_pair(3,'c')
  };
  std::map<int, char> m1(values, values + 6);
  std::map<int, char> m2;

  m2 = m1;
  m1 = std::map<int,char>();

  std::cout << "Size of m1: " << m1.size() << std::endl;
  std::cout << "Size of m2: " << m2.size() << std::endl;

  return 0;
}

出力

Size of m1: 0
Size of m2: 5

処理系

関連項目

名前 説明
insert 要素を挿入する
map コンストラクタ

参照