English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La funzione swap() dell'elenco di C++ scambia due elenchi di tipo identico, ma le dimensioni possono essere diverse.
void swap(list& x);
x: Questa è un'altra lista da scambiare con la lista fornita.
Non restituisce alcun valore.
Quando i tipi di entrambi gli elenchi sono diversi, viene generato un errore.
Lasciate che vi mostriamo un esempio semplice, in cui i tipi e le dimensioni di due elenchi sono gli stessi.
#include <iostream> #include<list> using namespace std; int main() { std::list<char> li={'+','-','*','@'}; list<char> li1={'j','a','v','a'}; std::cout << "All'inizio, il contenuto dell'elenco li è: "; for(list<char>::iterator itr=li.begin();itr!=li.end();++itr) cout<<*itr; std::cout << '\n' << "All'inizio, il contenuto dell'elenco li1 è: "; for(list<char>::iterator itr=li1.begin();itr!=li1.end();++itr) cout<<*itr; li.swap(li1); cout<<'\n'; cout<<"Dopo lo scambio, il contenuto dell'elenco li è: "; for(list<char>::iterator itr=li.begin();itr!=li.end();++itr) cout<<*itr; cout<<'\n'; cout<<"Dopo lo scambio, il contenuto dell'elenco li1 è: "; for(list<char>::iterator itr=li1.begin();itr!=li1.end();++itr) cout<<*itr; return 0; }
输出:
All'inizio, il contenuto dell'elenco li è: +-*@ All'inizio, il contenuto dell'elenco li1 è: java Dopo lo scambio, il contenuto dell'elenco li è: java Dopo lo scambio, il contenuto dell'elenco li1 è: +-*@
In questo esempio, la funzione swap() scambia il contenuto dell'elenco li con quello dell'elenco li1.
Lasciate che vi mostriamo un esempio semplice, quando due elenchi sono di tipi diversi.
#include <iostream> #include<list> using namespace std; int main() { std::list<char> li={'P','H','P'}; list<int> li1={1,2,3}; li.swap(li1); cout<<'\n'; return 0; }
输出:
error : no matching call for list::swap(list&).
在此示例中,两个列表均为不同类型。因此,函数swap()会引发错误,即:list :: swap(list&)没有匹配的调用。