English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C ++ std swap(set)C ++중set의비 멤버 함수。이는 두 개의 집합(즉 x와 y)의 내용을 교환(또는 대체)하는 데 사용되며, 두 집합의 유형은 동일해야 하지만 크기는 다를 수 있습니다.
template<class T, class Compare, class Alloc> void swap(set<T,Compare,Alloc>& x, set<T,Compare,Alloc>& y);
x:첫 번째 set 집합의 객체.
y:동일한 유형의 두 번째 객체.
없음
불변
두 컨테이너 중 요소를 모두 참조하는 이터너터, 참조와 포인터는 유효합니다.
주의하세요, 종료 이터너터는 요소를 참조하지 않으며, 무효일 수 있습니다.
컨테이너 x와 y 모두 변경됩니다.
함께 포함된 요소를 포함하지 않는 호출
이 함수는 예외를 발생시키지 않습니다.
간단한 예제를 보여드리겠습니다. 하나의 요소 집합을 다른 요소 집합과 교환하겠습니다:
#include <iostream> #include <set> using namespace std; int main(void) { set<char> m1 ={'a','b','c','d'}; set<char> m2; swap(m1, m2); cout << "집합은 다음과 같은 요소를 포함하고 있습니다" << endl; for (auto it = m2.begin(); it != m2.end(); ++it) cout << *it << endl; return 0; }
출력:
집합은 다음과 같은 요소를 포함하고 있습니다 a b c d
위의 예제에서, 집합 m1다섯 개의 요소를 가지고 있으면2공백입니다. m1交换为m2时,m1的所有元素都将交换为m2。
让我们看一个简单的示例来交换两个集合的内容:
#include <iostream> #include <set> using namespace std; int main () { set<int> set1,set2; set1= {100,200}; set2 = {110, 220, 330}; swap(set1,set2); cout << "set1 包含:\n"; for (set<int>::iterator it=set1.begin(); it!=set1.end(); ++it) cout << *it<< '\n'; cout << "set2 包含:\n"; for (set<int>::iterator it=set2.begin(); it!=set2.end(); ++it) cout << *it<< '\n'; return 0; }
출력:
set1 包含: 110 220 330 set2 包含: 100 200
在上面的示例中,两个集合(即set1和set2)的内容相互交换。
让我们看一个简单的示例来交换两个集合的内容:
#include <iostream> #include <set> using namespace std; int main () { int myints[]={12,75,10,32,20,25}; set<int> first (myints,myints+3); // 10,12,75 set<int> second (myints+3,myints+6); // 20,25,32 swap(first,second); cout << "first 包含:"; for (set<int>::iterator it=first.begin(); it!=first.end(); ++it) cout << ' ' << *it; cout << '\n'; cout << "second 包含:"; for (set<int>::iterator it=second.begin(); it!=second.end(); ++it) cout << ' ' << *it; cout << '\n'; return 0; }
출력:
first 包含: 20 25 32 second 包含: 10 12 75
让我们看一个简单的实例:
#include <iostream> #include <string> #include <set> using namespace std; void show(const char *msg, set<int> mp); int main() { set<int> m1, m2; m1.insert(100); m1.insert(300); m1.insert(200); // 을 교환하여 m1과 m2의 내용. cout << "交换m1과 m2的内容。\n"; swap(m1,m2); show("m2内容: ", m2); show("m1内容: ", m1); // Clear m1. m1.clear(); if(m1.empty()) cout << "m1 is now empty."; return 0; } // 通过使用迭代器显示set<string, int>的内容。 void show(const char *msg, set<int> mp) { set<int>::iterator itr; cout << msg << endl; for(itr=mp.begin(); itr != mp.end(); ++itr) cout << " " << *itr << endl; cout << endl; }
출력:
을 교환하여 m1과 m2의 내용. m2내용: 100 200 300 m1내용: m1 is now empty.
위의 예제에서, 집합 m1의 내용이 집합 m으로 교환되었습니다.2그리고 m1그 후, 집합이 지워졌습니다.