Partager via


hash_map::emplace

[!REMARQUE]

Cette API est obsolète.l'alternative est unordered_map Class.

Insère un élément construit en place dans un hash_map.

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

Paramètres

Paramètre

Description

_Val

La valeur utilisée pour déplacer l'élément d'un élément à insérer dans hash_map Class à moins qu' hash_map contienne déjà cet élément (ou, plus généralement, un élément dont la clé est de façon équivalente ordonnée).

Valeur de retour

La fonction membre d' emplace retourne une paire de le composant de bool retourne la valeur true si une insertion a été faite et false si hash_map contenait déjà un élément dont la clé a eu une valeur équivalente dans l'ordre, et dont le composant itérateur retourne l'adresse où un nouvel élément a été inséré ou lorsque l'élément a déjà été localisé.

Pour accéder au composant d'itérateur d'une paire pr retourné par cette fonction membre, utilisez pr.first, et le déréférencement, utilisez *(pr.first).Pour accéder au composant d' bool d'une paire pr retourné par cette fonction membre, utilisez pr.second, et le déréférencement, utilisez *(pr.second).

Notes

hash_map::value_type d'un élément sont des paires, afin que la valeur d'un élément soit une paire triée de le premier composant égale à la valeur de la clé et le deuxième composant égale à la valeur de données de l'élément.

Depuis Visual C++ .NET 2003, les membres de <hash_map> et les fichiers d'en-tête de <hash_set> ne sont plus dans l'espace de noms de DST, mais plutôt ont été déplacés dans l'espace de noms de stdext.Pour plus d'informations, consultez The stdext Namespace.

Exemple

// 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;
}
  

Configuration requise

en-tête : <hash_map>

Stdext del'espace de noms :

Voir aussi

Référence

hash_map Class

Modèles Standard