次の方法で共有


hash_map::emplace

[!メモ]

この API は、互換性のために残されています。代わりに unordered_map クラスです。

hash_mapに構築された要素を挿入します。

template<class ValTy>
    pair <iterator, bool> emplace(
        ValTy&& _Val
);

パラメーター

パラメーター

説明

_Val

hash_map が既にその要素が含まれていない構成要素の実行に使用する値 hash_map Class に挿入する要素 (または、より一般的には、キーが同じで並べる) 要素は。

戻り値

emplace のメンバー関数は hash_map が既にキーに対応した順序で、反復子のコンポーネントが要素が既に発生した位置に新しい要素を挿入するか、またはaddressを返す要素が含まれている場合はブール挿入が行われたfalseのコンポーネントがtrueを返すペアを返します。

ペア pr の反復子のコンポーネントにアクセスし、逆参照するには、このメンバー関数は、pr.first使用して、使用 *(pr.first)返されました。ペア pr の bool のコンポーネントにアクセスし、逆参照するには、このメンバー関数は、pr.second使用して、使用 *(pr.second)返されました。

解説

要素の hash_map::value_type は、要素の値がキー値と等しい最初の構成要素および要素のデータ値と等しい2番目のコンポーネントとの順序付けられたペアになるように、ペアです。

Visual C++ .NET 2003以降では、<hash_map><hash_set> ヘッダー ファイルのメンバーはstdの名前空間に存在しなくなりましたが、ではなくstdextの名前空間に型。詳細については、「The stdext Namespace」を参照してください。

使用例

// hash_map_emplace.cpp
// compile with: /EHsc
#include<hash_map>
#include<iostream>
#include <string>

int main()
{
    using namespace std;
    using namespace stdext;
    hash_map<int, string> hm1;
    typedef pair<int, string> is1(1, "a");

    hm1.emplace(move(is1));
    cout << "After the emplace insertion, hm1 contains:" << endl
      << " " << hm1.begin()->first
      << " => " << hm1.begin()->second
      << endl;
}
  

必要条件

ヘッダー: <hash_map>

名前空間: のstdext

参照

関連項目

hash_map Class

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