English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C++ std swap() metodo di utilizzo e esempio C++ stdswap(set)è in C++setdelFunzione non membro
Sintassi template <class T, class Compare, class Alloc>
Parametro:oggetto della prima set.
y:secondo oggetto dello stesso tipo.
Nessuno
Immutabile
Tutti gli iteratori che si riferiscono agli elementi di due contenitori, riferimenti e puntatori, rimangono validi.
Si prega di notare che l'iteratore di fine non si riferisce a un elemento e potrebbe essere non valido.
I contenitori x e y vengono modificati.
La chiamata non contiene alcun elemento contenuto.
Questa funzione non lancia eccezioni.
Vediamo un esempio semplice, scambiare un insieme di elementi con un altro insieme:
#include <iostream> #include <set> using namespace std; int main(void) { set<char> m1 = {'a','b','c','d'}; set<char> m2; swap(m1, m2); cout << "L'insieme contiene i seguenti elementi" << endl; for (auto it = m2.begin(); it != m2.end(); ++it) cout << *it<< endl; return 0; }
Output:
L'insieme contiene i seguenti elementi a b c d
Nell'esempio sopra, l'insieme m1 ha cinque elementi, mentre m2 è vuoto. Quando si scambia m1 con m2, tutti gli elementi di m1 vengono scambiati con m2.
Vediamo un esempio semplice per scambiare il contenuto di due insiemi:
#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; }
Output:
set1 包含: 110 220 330 set2 contiene: 100 200
Nell'esempio sopra, il contenuto di due insiemi (ovvero set1 e set2) vengono scambiati.
Vediamo un esempio semplice per scambiare il contenuto di due insiemi:
#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 contiene:"; for (set<int>::iterator it=first.begin(); it!=first.end(); ++it) cout << ' ' << *it; cout << '\n'; cout << "second contiene:"; for (set<int>::iterator it=second.begin(); it!=second.end(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
Output:
first contiene: 20 25 32 second contiene: 10 12 75
Vediamo un esempio semplice:
#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); // Scambiare il contenuto di m1 e m2. cout << "Scambiare il contenuto di m1 e m2.\n"; swap(m1,m2); show("Contenuto di m2: ", m2); show("Contenuto di m1: ", m1); // Svuotare m1. m1.clear(); if(m1.empty()) cout << "m1 è ora vuoto."; return 0; } // Utilizzando l'iteratore visualizzare il contenuto di 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 << " " << *itr << endl; cout << endl; }
Output:
Scambia il contenuto di m1 e m2. Contenuto di m2: 100 200 300 Contenuto di m1: m1 è ora vuoto.
Nell'esempio sopra, il contenuto dell'insieme m1 è stato scambiato con l'insieme m2 e l'insieme è stato cancellato dopo lo scambio di m1.