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