English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ swap()A função é usada para trocar (ou substituir) o conteúdo de dois conjuntos, mas os conjuntosTipoDeveIgualEmbora o tamanho possa ser diferente.
void swap (set& x);
x:O contêiner que contém o conteúdo trocado.
Nenhum
Invariável.
Todas as referências, iteradores e ponteiros que referem elementos de dois conjuntos de contêineres permanecem válidos, mas agora referem-se a elementos de outro contêiner de conjunto e iteram neles.
O contêiner e x são modificados.
Se uma exceção for lançada, não há efeito no contêiner.
Vamos ver um exemplo simples, onde um conjunto de elementos é trocado por outro conjunto:
#include <iostream> #include <set> using namespace std; int main(void) { set<int> m1 ={1,2,3,4,5}; set<int> m2; m2.swap(m1); cout << "O conjunto contém os seguintes elementos" << endl; for (auto it = m2.begin(); it != m2.end(); ++it) cout << *it << endl; return 0; }
Saída:
Contém os seguintes elementos 1 2 3 4 5
No exemplo acima, o conjunto m1com cinco elementos, enquanto m2Vazio. Quando você coloca m1será trocado por m2ao mesmo tempo, m1Todos os elementos serão trocados por m2.
Vamos ver um exemplo simples para trocar dois conjuntos de conteúdo:
#include <iostream> #include <set> using namespace std; int main () { int myints[] = {10,20,30,40,50,60}; set<int> first (myints, myints+3); set<int> second (myints+3, myints+6); first.swap(second); cout << "O primeiro conjunto contém:"; for (set<int>::iterator it = first.begin(); it!=first.end(); ++it) cout << ' ' << *it; cout << '\n'; cout << "O segundo conjunto contém:"; for (set<int>::iterator it = second.begin(); it!=second.end(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
Saída:
O primeiro conjunto contém: 40 50 60 O segundo conjunto contém: 10 20 30
Vamos ver um exemplo simples para trocar o conteúdo de dois conjuntos:
#include<iostream> #include<set> using namespace std; int main() { // Tomar dois conjuntos aleatórios set<char> set1, set2; set1 = {'a','b','c','d'}; set2 = {'x','y','z'}; // Trocar os elementos do conjunto swap(set1, set2); // Imprimir os elementos do conjunto cout << "set1:\n"; for (auto it = set1.begin(); it != set1.end(); it++) cout << '\t' << *it << '\n'; cout << "set2:\n"; for (auto it = set2.begin(); it != set2.end(); it++) cout << '\t' << *it << '\n'; return 0; }
Saída:
set1: x y z set2: a b c d
No exemplo acima, outra forma da função swap() é usada para trocar o conteúdo de dois conjuntos.
Vamos ver um exemplo simples:
#include <set> #include <iostream> int main( ) { using namespace std; set<int> s1, s2, s3; set<int>::iterator s1_Iter; s1.insert( 10 ); s1.insert( 20 ); s1.insert( 30 ); s2.insert( 100 ); s2.insert( 200 ); s3.insert( 300 ); cout << "conjunto original s1é:"; for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << "." << endl; // Esta é a versão membro da função swap s1.swap( s2 ); cout << "com s2Após a troca, a lista s1para:"; for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << "." << endl; // Esta é a versão específica do modelo swap swap( s1, s3 ); cout << "com s3Após a troca, a lista s1é:"; for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << "." << endl; }
Saída:
Conjunto Original s1É: 10 20 30. com s2Após a troca, a lista s1é: 100 200. com s3Após a troca, a lista s1É: 300.