次の方法で共有


multimap::emplace

インプレースで構築された (コピーまたは移動操作が実行されない) 要素を挿入します。

template<class... Args>
   iterator emplace(
      Args&&... args);

パラメーター

パラメーター

説明

args

multimap に挿入される要素を構築するために転送される引数。

戻り値

新しく挿入される要素を指す反復子。

解説

この関数では、コンテナー要素を指す参照は無効になりません。ただし、コンテナーを指すすべての反復子が無効になる場合があります。

挿入時に例外がスローされた場合、コンテナーは変更されず、再度例外がスローされます。

要素の value_type はペアを表します。これにより、要素の値は順序付けされたペアになり、このペアの最初のコンポーネントはキー値と同じで、2 番目のコンポーネントは要素のデータ値と同じになります。

使用例

// multimap_emplace.cpp
// compile with: /EHsc
#include <map>
#include <string>
#include <iostream>

using namespace std;

template <typename M> void print(const M& m) {
    cout << m.size() << " elements: " << endl;

    for (const auto& p : m) {
        cout << "(" << p.first <<  "," << p.second << ") ";
    }

    cout << endl;
}

int main()
{
    multimap<string, string> m1;

    m1.emplace("Anna", "Accounting");
    m1.emplace("Bob", "Accounting");
    m1.emplace("Carmine", "Engineering");

    cout << "multimap modified, now contains ";
    print(m1);
    cout << endl;

    m1.emplace("Bob", "Engineering");

    cout << "multimap modified, now contains ";
    print(m1);
    cout << endl;
}

出力

multimap modified, now contains 3 elements:
(Anna,Accounting) (Bob,Accounting) (Carmine,Engineering)

multimap modified, now contains 4 elements:
(Anna,Accounting) (Bob,Accounting) (Bob,Engineering) (Carmine,Engineering)

必要条件

ヘッダー: <map>

名前空間: std

参照

関連項目

<map>

multimap クラス

標準テンプレート ライブラリ