English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ set swap() 사용 방법 및 예제

C++ STL Set(집합)

C ++ swap()함수는 두 집합의 내용을 교환하거나 대체하는 데 사용되지만, 두 집합의형식필수동일크기는 다를 수 있지만.

문법

void swap(set& x);

파라미터

x:교환할 내용을 포함한 설정

반환 값

없음

複잡

불변

이터레이터 유효성

두 집합 컨테이너의 요소를 모두 참조하는 모든 참조, 이터레이터, 포인터는 유효하지만, 이제 다른 집합 컨테이너의 요소를 참조하여 그 안에서 이터레이션을 수행합니다.

데이터 경쟁

컨테이너와 x 모두 변경됩니다.

예외 안전

예외가 발생하면 컨테이너에 영향을 미치지 않습니다.

예제1

빠른 예제를 보여드리겠습니다. 요소 집합을 다른 집합과 교환해보겠습니다:

#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.

예제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

예제3

두 집합의 내용을 교환하는 데 사용되는 간단한 예제를 보여줍니다:

#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() 함수의 다른 형태가 두 집합의 내용을 교환하는 데 사용되었습니다.

예제4

다음은 간단한 예제를 보여줍니다:

#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.

C++ STL Set(집합)