English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ List swap() 함수는 두 개의 같은 타입의 목록을 교환하지만 크기가 다를 수 있습니다.
void swap(list& x);
x:이 목록과 교환할 다른 목록입니다.
아무 값을 반환하지 않습니다.
두 개의 목록의 타입이 모두 다를 때, 오류가 발생합니다.
두 개의 목록의 타입과 크기가 모두 같은 간단한 예제를 보겠습니다.
#include <iostream> #include<list> using namespace std; int main() { std::list<char> li={"+','-','*','@'}; list<char> li1={'j','a','v','a'}; std::cout << "처음에는, 목록 li의 내용은 다음과 같습니다: "; for(list<char> :: iterator itr=li.begin();itr!=li.end();++itr) cout<<*itr; std::cout << '\n'<<"처음에는, 목록 li1의 내용은 다음과 같습니다: "; for(list<char> :: iterator itr=li1.begin();itr!=li1.end();++itr) cout<<*itr; li.swap(li1); cout<<'\n'; cout<<"교환 후, 목록 li의 내용은 다음과 같습니다: "; for(list<char> :: iterator itr=li.begin();itr!=li.end();++itr) cout<<*itr; cout<<'\n'; cout<<"교환 후, 목록 li1의 내용은 다음과 같습니다: "; for(list<char> :: iterator itr=li1.begin();itr!=li1.end();++itr) cout<<*itr; return 0; }
출력:
처음에는, 목록 li의 내용은 다음과 같습니다: +-*@ 처음에는, 목록 li1의 내용은 다음과 같습니다: java 교환 후, 목록 li의 내용은 다음과 같습니다: java 교환 후, 목록 li1의 내용이 다음과 같습니다: +-*@
이 예제에서 swap() 함수는 목록 li의 내용을 목록 li1교환.
두 개의 목록이 다른 타입일 때의 간단한 예제를 보겠습니다.
#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&)에 일치하는 호출이 없습니다.