Partager via


hash_map::emplace

Notes

Cette API est obsolète.L'alternative est unordered_map, classe.

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

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

Paramètres

Paramètre

Description

_Val

La valeur utilisée pour construire un élément à insérer dans hash_map, classe à moins que la hash_map comporte déjà cet élément (ou, plus généralement, un élément dont la clé est classée de façon équivalente).

Valeur de retour

La fonction membre emplace d'un élément consiste en une paire, dont le composant booléen retourne true si une insertion a été réalisée ou faux si la hash_map contient déjà un élément dont la clé avait une valeur équivalente dans la commande, 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 itérateur d'une paire pr retournée par cette fonction membre, utilisez pr.first, et pour le déréférencer, utilisez *(pr.first). Pour accéder au composant bool d'une paire pr retournée par cette fonction membre, utilisez pr.second, et pour le déréférencer, utilisez *(pr.second).

Notes

La hash_map::value_type d'un élément consiste en une paire, afin que la valeur d'un élément soit une paire classée avec comme premier composant la valeur de clé et le second composant égal à la valeur de l'élément.

Depuis avec Visual C++ .NET 2003, les membres des fichiers d'en-tête <hash_map> et <hash_set> ne sont plus dans l'espace de noms std, mais ont été plutô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>

Espace de noms : stdext

Voir aussi

Référence

hash_map, classe

Bibliothèque STL (Standard Template Library)