unordered_map::swap
Échange le contenu de deux conteneurs.
void swap(unordered_map& right);
Paramètres
- right
Le conteneur à échanger avec.
Notes
La fonction membre permute les commandes d'exécution des instructions entre *this et right.Si unordered_map::get_allocator() == right.get_allocator(), il fait dans le temps fixe, il lève une exception uniquement à la suite de copier l'objet Ctraits stocké du type Tr, et n'invalide pas de référence, un pointeur, ou itérateurs qui indiquent des éléments des deux commandes d'exécution des instructions.Sinon, il exécute plusieurs assignations d'élément et le constructeur appelle proportionnel au nombre d'éléments des deux commandes d'exécution des instructions.
Exemple
// std_tr1__unordered_map__unordered_map_swap.cpp
// compile with: /EHsc
#include <unordered_map>
#include <iostream>
typedef std::unordered_map<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;
Mymap c2;
c2.insert(Mymap::value_type('d', 4));
c2.insert(Mymap::value_type('e', 5));
c2.insert(Mymap::value_type('f', 6));
c1.swap(c2);
// display contents " [f 6] [e 5] [d 4]"
for (Mymap::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << it->first << ", " << it->second << "]";
std::cout << std::endl;
swap(c1, c2);
// 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;
return (0);
}
Configuration requise
en-tête : <unordered_map>
l'espace de noms : DST