hash_map::emplace_hint
[!NOTA]
Questo API è obsoleto.L'alternativa consiste unordered_map Class.
Inserire un elemento costruito sul posto in un hash_map, con un suggerimento di posizione.
template<class ValTy>
iterator emplace_hint(
const_iterator _Where,
ValTy&& _Val
);
Parametri
Parametro |
Descrizione |
_Val |
Il valore utilizzato per spostare costrutto un elemento da inserire in hash_map Class a meno che hash_map già contengono tale elemento, o più in generale, un elemento il cui la chiave equivalente è ordinata). |
_Where |
Un suggerimento per quanto riguarda il posto per avviare ricerca il punto corretto di inserimento. |
Valore restituito
La funzione membro hash_multimap::emplace restituisce un iteratore che indica la posizione in cui il nuovo elemento è stato immesso in hash_map, o in cui l'elemento esistente con l'ordine equivalente si trova.
Note
hash_map::value_type di un elemento rappresenta una coppia, in modo che il valore di un elemento verrà una coppia ordinata con la prima parte uguale al valore della chiave e la seconda parte uguale al valore dei dati dell'elemento.
L'inserimento può verificarsi nel tempo costante ammortizzato, anziché tempo logaritmico, se il punto di inserimento immediatamente successivo a _Where.
A partire da Visual C++ .NET 2003, i membri dei file di intestazione <hash_set> e <hash_map> non sono più nello spazio dei nomi di deviazione standard, ma sono stati spostati nello spazio dei nomi di stdext.Per ulteriori informazioni, vedere lo spazio dei nomi stdext.
Esempio
// hash_map_emplace_hint.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(hm1.begin(), move(is1));
cout << "After the emplace, hm1 contains:" << endl
<< " " << hm1.begin()->first
<< " => " << hm1.begin()->second
<< endl;
}
Requisiti
intestazione: <hash_map>
Stdext diSpazio dei nomi: