unordered_multimap::insert
ajoute des éléments.
iterator insert(const value_type& val);
iterator insert(iterator where, const value_type& val);
template<class InIt>
void insert(InIt first, InIt last);
template<class ValTy>
iterator insert(ValTy&& val);
template<class ValTy>
iterator insert(const_iterator where, ValTy&& val);
Paramètres
Paramètre |
Description |
InIt |
le type d'itérateur. |
ValTy |
le type d'argument sur place de constructeur. |
First |
début de la plage à insérer. |
Last |
Fin de la plage à insérer. |
Val |
valeur à insérer. |
Where |
Où dans le conteneur insérer (indicateur uniquement). |
Notes
La première fonction membre insère l'élément val dans la séquence contrôlée, puis retourne l'itérateur qui indique que l'élément inséré.La deuxième fonction membre retourne insert(val), à l'aide de where comme point de départ dans la séquence contrôlée pour rechercher le point d'insertion.(L'insertion peut éventuellement se produire en un peu plus rapidement, si le point d'insertion immédiatement précède ou suit where.)
la troisième fonction membre insère la séquence de valeurs d'élément, pour chaque where dans la plage [first, last), en appelant insert(*where).
Les deux dernières fonctions membres se comportent de la même manière que les deux premiers, sauf qu' val est utilisé pour construire la valeur insérée.
Si une exception est levée pendant la mise en place d'un seul élément, le conteneur reste inchangé et l'exception est à nouveau levée.Si une exception est levée pendant la mise en place de plusieurs éléments, le conteneur est laissé dans un stable mais l'état non spécifiée et l'exception est à nouveau levée.
Exemple
// std_tr1__unordered_map__unordered_multimap_insert.cpp
// compile with: /EHsc
#include <unordered_map>
#include <iostream>
#include <string>
typedef std::unordered_multimap<char, int> Mymap;
int main()
{
Mymap c1;
c1.insert(Mymap::value_type('a', 1));
c1.insert(Mymap::value_type('b', 2));
c1.insert(Mymap::value_type('c', 3));
// display contents " [c 3] [b 2] [a 1]"
for (Mymap::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << it->first << ", " << it->second << "]";
std::cout << std::endl;
// insert with hint and reinspect
Mymap::iterator it2 = c1.insert(c1.begin(), Mymap::value_type('d', 4));
for (Mymap::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << it->first << ", " << it->second << "]";
std::cout << std::endl;
// insert range and inspect
Mymap c2;
c2.insert(c1.begin(), c1.end());
for (Mymap::const_iterator it = c2.begin();
it != c2.end(); ++it)
std::cout << " [" << it->first << ", " << it->second << "]";
std::cout << std::endl;
// insert new and duplicate, and reinspect
c1.insert(Mymap::value_type('e', 5));
c1.insert(Mymap::value_type('a', 6));
for (Mymap::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << it->first << ", " << it->second << "]";
std::cout << std::endl;
// The templatized versions move constructing elements
unordered_multimap<int, string> c3, c4;
pair<int, string> is1(1, "a"), is2(2, "b");
c3.insert(move(is1));
cout << "After the move insertion, c3 contains:" << endl
<< " " << c3.begin()->first
<< " => " << c3.begin()->second
<< endl;
c4.insert(c4.begin(), move(is2));
cout << "After the move insertion, c4 contains:" << endl
<< " " << c4.begin()->first
<< " => " << c4.begin()->second
<< endl;
return (0);
}
Configuration requise
en-tête : <unordered_map>
l'espace de noms : type