C ++ List swap()函數(shù)將兩個(gè)相同類型的列表進(jìn)行交換,但是大小可以不同。
void swap(list& x);
x:這是另一個(gè)要與給定列表交換的列表。
它不返回任何值。
當(dāng)兩個(gè)列表的類型都不相同時(shí),將引發(fā)錯(cuò)誤。
讓我們看一個(gè)簡(jiǎn)單的示例,其中兩個(gè)列表的類型和大小都相同。
#include <iostream> #include<list> using namespace std; int main() { std::list<char> li={'+','-','*','@'}; list<char> li1={'j','a','v','a'}; std::cout << "最初,列表li的內(nèi)容是 :"; for(list<char> :: iterator itr=li.begin();itr!=li.end();++itr) cout<<*itr; std::cout << '\n'<<"最初,列表li1的內(nèi)容是 :"; for(list<char> :: iterator itr=li1.begin();itr!=li1.end();++itr) cout<<*itr; li.swap(li1); cout<<'\n'; cout<<"交換后,列表li的內(nèi)容為 :"; for(list<char> :: iterator itr=li.begin();itr!=li.end();++itr) cout<<*itr; cout<<'\n'; cout<<"交換后,列表li1的內(nèi)容為 :"; for(list<char> :: iterator itr=li1.begin();itr!=li1.end();++itr) cout<<*itr; return 0; }
輸出:
最初,列表li的內(nèi)容是 : +-*@ 最初,列表li1的內(nèi)容是 : java 交換后,列表li的內(nèi)容為 : java 交換后,列表li1的內(nèi)容為 : +-*@
在此示例中,swap()函數(shù)將列表li的內(nèi)容與列表li1交換。
讓我們看一個(gè)簡(jiǎn)單的實(shí)例,當(dāng)兩個(gè)列表都是不同的類型時(shí)。
#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&).
在此示例中,兩個(gè)列表均為不同類型。因此,函數(shù)swap()會(huì)引發(fā)錯(cuò)誤,即:list :: swap(list&)沒(méi)有匹配的調(diào)用。