hash_map::insert
[!REMARQUE]
Cette API est obsolète.l'alternative est unordered_map Class.
Insère un élément ou une plage d'éléments dans un hash_map.
pair <iterator, bool> insert(
const value_type& _Val
);
iterator insert(
const_iterator _Where,
const value_type& _Val
);
template<class InputIterator>
void insert(
InputIterator _First,
InputIterator _Last
);
template<class ValTy>
pair <iterator, bool> insert(
ValTy&& _Val
);
template<class ValTy>
iterator insert(
const_iterator _Where,
ValTy&& _Val
);
Paramètres
Paramètre |
Description |
_Val |
La valeur d'un élément à insérer dans le hash_map à moins que le 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). |
_Where |
Une aide concernant l'emplacement pour commencer à rechercher le point correct d'implémentation. |
_First |
Position du premier élément à copier d'un hash_map. |
_Last |
La position immédiatement au delà de le dernier élément à copier d'un hash_map. |
Valeur de retour
La première fonction membre d' insert retourne une paire de le composant de bool retourne la valeur true si une insertion a été faite et false si le 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).
La deuxième fonction membre d' insert , la version des indicateurs, retourne un itérateur qui indique la position où le nouvel élément a été inséré dans le hash_map.
Les deux dernières fonctions membres d' insert se comportent de la même manière que les deux premiers, mais qu'elles passent l'élément la valeur insérée.
Notes
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.
L'implémentation peut se produire dans le temps constante amortie pour la version des indicateurs de l'insertion, au lieu du temps logarithmique, si le point d'insertion suit immédiatement _Where.
La troisième fonction membre insère la séquence de valeurs d'élément dans un hash_map correspondant à chaque élément traité par un itérateur de dans la plage [d'abord, en dernier) d'un jeu spécifié.
Exemple
// hash_map_insert.cpp
// compile with: /EHsc
#include<hash_map>
#include<iostream>
#include <string>
int main()
{
using namespace std;
using namespace stdext;
hash_map<int, int>::iterator hm1_pIter, hm2_pIter;
hash_map<int, int> hm1, hm2;
typedef pair<int, int> Int_Pair;
hm1.insert(Int_Pair(1, 10));
hm1.insert(Int_Pair(2, 20));
hm1.insert(Int_Pair(3, 30));
hm1.insert(Int_Pair(4, 40));
cout<< "The original elements (Key => Value) of hm1 are:";
for (hm1_pIter = hm1.begin(); hm1_pIter != hm1.end(); hm1_pIter++)
cout << endl << " " << hm1_pIter -> first << " => "
<< hm1_pIter->second;
cout << endl;
pair< hash_map<int,int>::iterator, bool > pr;
pr = hm1.insert(Int_Pair(1, 10));
if (pr.second == true)
{
cout<< "The element 10 was inserted in hm1 successfully."
<< endl;
}
else
{
cout<< "The element 10 already exists in hm1\n with a key value of"
<< "((pr.first) -> first)= "<<(pr.first)-> first
<< "."<< endl;
}
// The hint version of insert
hm1.insert(--hm1.end(), Int_Pair(5, 50));
cout<< "After the insertions, the elements of hm1 are:";
for (hm1_pIter = hm1.begin(); hm1_pIter != hm1.end(); hm1_pIter++)
cout << endl << " " << hm1_pIter -> first << " => "
<< hm1_pIter->second;
cout << endl;
hm2.insert(Int_Pair(10, 100));
// The templatized version inserting a range
hm2.insert( ++hm1.begin(), --hm1.end() );
cout<< "After the insertions, the elements of hm2 are:";
for (hm2_pIter = hm2.begin(); hm2_pIter != hm2.end(); hm2_pIter++)
cout << endl << " " << hm2_pIter -> first << " => "
<< hm2_pIter->second;
cout << endl;
// The templatized versions move constructing elements
hash_map<int, string> hm3, hm4;
pair<int, string> is1(1, "a"), is2(2, "b");
hm3.insert(move(is1));
cout << "After the move insertion, hm3 contains:" << endl
<< " " << hm3.begin()->first
<< " => " << hm3.begin()->second
<< endl;
hm4.insert(hm4.begin(), move(is2));
cout << "After the move insertion, hm4 contains:" << endl
<< " " << hm4.begin()->first
<< " => " << hm4.begin()->second
<< endl;
}
Configuration requise
en-tête : <hash_map>
Stdext del'espace de noms :