C ++ Deque swap()函數(shù)將給定雙端隊(duì)列的內(nèi)容與傳遞給相同類(lèi)型參數(shù)的雙端隊(duì)列進(jìn)行交換。
雙端隊(duì)列的類(lèi)型必須相同。
雙端隊(duì)列的大小允許不等。
void swap(deque& second);
second:這是另一個(gè)雙端隊(duì)列容器,其內(nèi)容將與給定的雙端隊(duì)列交換。
它不返回任何值。
讓我們看一個(gè)簡(jiǎn)單的實(shí)例
#include <iostream> #include<deque> using namespace std; int main() { deque<string> str={"C是一種編程語(yǔ)言"}; deque<string> str1={"java是一種編程語(yǔ)言"}; str.swap(str1); deque<string>::iterator itr=str.begin(); deque<string>::iterator itr1=str1.begin(); cout<<"交換后,str的值為: "<<*itr; cout<<'\n'; cout<<"交換后,str1的值為: "<<*itr1; return 0; }
輸出:
交換后,str的值為: java是一種編程語(yǔ)言 交換后,str1的值為: C是一種編程語(yǔ)言
在此示例中,swap()函數(shù)交換str和str1的內(nèi)容?,F(xiàn)在,str包含“ java是一種編程語(yǔ)言”,而str1包含“ C是一種編程語(yǔ)言”。
讓我們看一個(gè)當(dāng)兩個(gè)雙端隊(duì)列為不同類(lèi)型時(shí)的簡(jiǎn)單示例。
#include <iostream> #include<deque> using namespace std; int main() { deque<char> c={'m','a','n','g','o'}; deque<int> s={1 ,2,3,4,5}; c.swap(s); return 0; }
輸出:
error: no matching function for call to 'std::deque<char>::swap(std::deque<int>&)
在此示例中,swap()函數(shù)將引發(fā)錯(cuò)誤,因?yàn)閮蓚€(gè)雙端隊(duì)列的類(lèi)型不同。
讓我們看一個(gè)簡(jiǎn)單的實(shí)例,當(dāng)大小不同時(shí)。
#include <iostream> #include<deque> using namespace std; int main() { deque<int> first={1,2,3,4}; deque<int> second={10,20,30,40,50}; deque<int>::iterator itr; first.swap(second); cout<<"第一雙端隊(duì)列的內(nèi)容:"; for(itr=first.begin();itr!=first.end();++itr) cout<<*itr<<" "; cout<<'\n'; cout<<"第二雙端隊(duì)列的內(nèi)容:"; for(itr=second.begin();itr!=second.end();++itr) cout<<*itr<<" "; return 0; }
輸出:
第一雙端隊(duì)列的內(nèi)容:10 20 30 40 50 第二雙端隊(duì)列的內(nèi)容:1 2 3 4
在此示例中,swap()函數(shù)將第一個(gè)雙端隊(duì)列的內(nèi)容交換為第二個(gè)雙端隊(duì)列。