English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ std std swap() métodos de uso e exemplosstd ++swap(set)setCédo
。 Isso é usado para trocar (ou substituir) o conteúdo de dois conjuntos (ou seja, x e y), mas os tipos dos conjuntos devem ser os mesmos, e o tamanho dos conjuntos pode ser diferente. Sintaxe
void swap(set<T,Compare,Alloc>& x, set<T,Compare,Alloc>& y);: O parâmetro x.
: O objeto da primeira coleção set.: Segundo objeto do mesmo tipo.
Nenhum
Invariável
Todos os iteradores que referenciam elementos de dois contêineres, referências e ponteiros, permanecem válidos.
Observe que o iterador de final não referencia o elemento e pode ser inválido.
Os contêineres x e y são modificados.
A chamada não contém nenhum elemento contido.
Esta função não lança exceções.
Vamos ver um exemplo simples, trocando um conjunto de elementos por outro conjunto:
#include <iostream> #include <set> using namespace std; int main(void) { set<char> m1 = {'a','b','c','d'}; set<char> m2; swap(m1, m2); 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:
O conjunto contém os seguintes elementos a b c d
No exemplo acima, o conjunto m1com cinco elementos, enquanto o m2Vazio. Quando você inserir o m1交换为m2时,m1的所有元素都将交换为m2。
让我们看一个简单的示例来交换两个集合的内容:
#include <iostream> #include <set> using namespace std; int main () { set<int> set1,set2; set1= {100,200}; set2 = {110, 220, 330}); swap(set1,set2); cout << "set1 包含:\n"; for (set<int>::iterator it=set1.begin(); it!=set1.end(); ++it) cout << *it<< '\n'; cout << "set2 包含:\n"; for (set<int>::iterator it=set2.begin(); it!=set2.end(); ++it) cout << *it<< '\n'; return 0; }
Saída:
set1 包含: 110 220 330 set2 包含: 100 200
在上面的示例中,两个集合(即set1和set2)的内容相互交换。
让我们看一个简单的示例来交换两个集合的内容:
#include <iostream> #include <set> using namespace std; int main () { int myints[]={12,75,10,32,20,25}; set<int> first (myints,myints+3); // 10,12,75 set<int> second (myints+3,myints+6); // 20,25,32 swap(first,second); cout << "first 包含:"; for (set<int>::iterator it=first.begin(); it!=first.end(); ++it) cout << ' ' << *it; cout << '\n'; cout << "second 包含:"; for (set<int>::iterator it=second.begin(); it!=second.end(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
Saída:
first 包含: 20 25 32 second 包含: 10 12 75
让我们看一个简单的实例:
#include <iostream> #include <string> #include <set> using namespace std; void show(const char *msg, set<int> mp); int main() { set<int> m1, m2; m1.insert(100); m1.insert(300); m1.insert(200); // trocar m1E m2o conteúdo. cout << "交换m1E m2的内容。\n"; swap(m1,m2); show("m2内容: ", m2); show("m1内容: ", m1); // Clear m1. m1.clear(); if(m1.empty()) cout << "m1 is now empty."; return 0; } // 通过使用迭代器显示set<string, int>的内容。 void show(const char *msg, set<int> mp) { set<int>::iterator itr; cout << msg << endl; for(itr=mp.begin(); itr != mp.end(); ++itr) cout << "\t" *itr << endl; cout << endl; }
Saída:
trocar m1E m2o conteúdo. m2Conteúdo: 100 200 300 m1Conteúdo: m1 está agora vazio.
No exemplo acima, o conjunto m1O conteúdo foi trocado para o conjunto m2E, em seguida, o conteúdo foi trocado por m1Depois, o conjunto foi limpo.