English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ swap()함수는 두 집합의 내용을 교환하거나 대체하는 데 사용되지만, 두 집합의형식필수동일크기는 다를 수 있지만.
void swap(set& x);
x:교환할 내용을 포함한 설정
없음
불변
두 집합 컨테이너의 요소를 모두 참조하는 모든 참조, 이터레이터, 포인터는 유효하지만, 이제 다른 집합 컨테이너의 요소를 참조하여 그 안에서 이터레이션을 수행합니다.
컨테이너와 x 모두 변경됩니다.
예외가 발생하면 컨테이너에 영향을 미치지 않습니다.
빠른 예제를 보여드리겠습니다. 요소 집합을 다른 집합과 교환해보겠습니다:
#include<iostream> #include<set> using namespace std; int main(void) { set<int> m1 ={1,2,3,4,5}; set<int> m2; m2.swap(m1); cout << "집합은 다음 요소를 포함하고 있습니다" << endl; for (auto it = m2.begin(); it != m2.end(); ++it) cout << *it << endl; return 0; }
출력:
집합은 다음 요소를 포함하고 있습니다 1 2 3 4 5
위의 예제에서, 집합 m1다섯 개의 요소를 가지고 있으며 m2비어있습니다. m1이 m로 교환됩니다}}2m1의 모든 요소가 m로 교환됩니다2.
두 집합의 내용을 교환하는 간단한 예제를 보여줍니다:
#include<iostream> #include<set> using namespace std; int main () { int myints[] = {10,20,30,40,50,60}; set<int> first(myints,myints+3); set<int> second(myints+3, myints+6); first.swap(second); cout << "첫 번째 집합은 다음과 같습니다:"; for (set<int>::iterator it = first.begin(); it!=first.end(); ++it) cout << ' ' << *it; cout << '\n'; cout << "두 번째 집합은 다음과 같습니다:"; for (set<int>::iterator it = second.begin(); it!=second.end(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
출력:
첫 번째 집합은 다음과 같습니다: 40 50 60 두 번째 집합은 다음과 같습니다: 10 20 30
두 집합의 내용을 교환하는 데 사용되는 간단한 예제를 보여줍니다:
#include<iostream> #include<set> using namespace std; int main() { // 이차원 집합을 선택합니다 set<char> set1, set2; set1 = {'a','b','c','d'}; set2 = {'x','y','z'}; // 집합 요소를 교환합니다 swap(set1, set2); // 집합의 요소를 출력합니다 cout << "set1:\n"; for (auto it = set1.begin(); it != set1.end(); it++) cout << '\t' << *it << '\n'; cout << "set2:\n"; for (auto it = set2.begin(); it != set2.end(); it++) cout << '\t' << *it << '\n'; return 0; }
출력:
set1: x y z set2: a b c d
위의 예제에서 swap() 함수의 다른 형태가 두 집합의 내용을 교환하는 데 사용되었습니다.
다음은 간단한 예제를 보여줍니다:
#include<set> #include<iostream> int main( ) { using namespace std; set<int> s1, s2, s3; set<int>::iterator s1_Iter; s1.insert( 10 ); s1.insert( 20 "); s1.insert( 30 "); s2.insert( 100 "); s2.insert( 200 "); s3.insert( 300 "); cout << "원본 집합 s1는:"; for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << "." << endl; // 이는 swap의 멤버 함수 버전입니다 s1.swap( s2 ); cout << "와 s2교환 후, 목록 s1이하: for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << "." << endl; // 이는 swap의 전용 템플릿 버전입니다 swap( s1, s3 ); cout << "在与s3교환 후, 목록 s1는:"; for ( s1_Iter = s1.begin( ); s1_Iter != s1.end( ); s1_Iter++ ) cout << " " << *s1_Iter; cout << "." << endl; }
출력:
원래 집합 s1은: 10 20 30. 와 s2교환 후, 목록 s1은: 100 200. 와 s3교환 후, 목록 s1은: 300.