unordered_set::swap
Échange le contenu de deux conteneurs.
void swap(unordered_set& right);
Paramètres
- right
Le conteneur à échanger avec.
Notes
La fonction membre permute les séquences contrôlées entre *this et right.Si unordered_set::get_allocator() == right.get_allocator(), il le fait dans le temps fixe, il lève une exception uniquement à la suite de copier l'objet Ctraits stocké du type Tr, et il n'invalide pas de référence, pointeur, ou itérateurs qui indiquent des éléments des deux séquences contrôlées.Sinon, il exécute plusieurs assignations d'élément et le constructeur appelle proportionnel au nombre d'éléments des deux séquences contrôlées.
Exemple
// std_tr1__unordered_set__unordered_set_swap.cpp
// compile with: /EHsc
#include <unordered_set>
#include <iostream>
typedef std::unordered_set<char> Myset;
int main()
{
Myset c1;
c1.insert('a');
c1.insert('b');
c1.insert('c');
// display contents " [c] [b] [a]"
for (Myset::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << *it << "]";
std::cout << std::endl;
Myset c2;
c2.insert('d');
c2.insert('e');
c2.insert('f');
c1.swap(c2);
// display contents " [f] [e] [d]"
for (Myset::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << *it << "]";
std::cout << std::endl;
swap(c1, c2);
// display contents " [c] [b] [a]"
for (Myset::const_iterator it = c1.begin();
it != c1.end(); ++it)
std::cout << " [" << *it << "]";
std::cout << std::endl;
return (0);
}
Configuration requise
en-tête : <unordered_set>
l'espace de noms : type