C++ STL中的unordered_set swap()
“unordered_set”中的swap()方法交换了两个容器的内容。它是公共成员函数。这个函数:
- 通过内容变量的内容,与这个容器交换内容,这个变量是另一个包含相同类型但大小可能不同的元素的 unordered_set 对象。
- 在调用这个成员函数后,这个容器中的元素是调用之前的变量中的元素,变量中的元素是这个容器中的元素。
语法:
void swap(unordered_set &another_unordered_set);
参数: 它接收同一类型的另一个容器对象another_unordered_set,它将与此容器交换。
返回: 它不返回任何值。
下面的程序说明了unordered_set swap()函数:
例子1:
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main()
{
// 设置两个容器的值
unordered_set<string>
first = { "FOR GEEKS" },
second = { "GEEKS" };
// 交换前的值
cout << "before swap :- \n";
cout << "1st container : ";
for (const string& x : first)
cout << x << endl;
cout << "2nd container : ";
for (const string& x : second)
cout << x << endl;
// 调用swap
first.swap(second);
// 交换后的值
cout << "\nafter swap :- \n";
// 显示第一个容器
cout << "1st container : ";
for (const string& x : first)
cout << x << endl;
// 显示第二个容器
cout << "2nd container : ";
for (const string& x : second)
cout << x << endl;
return 0;
}
before swap :-
1st container : FOR GEEKS
2nd container : GEEKS
after swap :-
1st container : GEEKS
2nd container : FOR GEEKS
例子2:
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
int main()
{
// 设置两个容器的值
unordered_set<int>
first = { 1, 2, 3 },
second = { 4, 5, 6 };
// 交换前的值
cout << "before swap :- \n";
cout << "1st container : ";
for (const int& x : first)
cout << x << " ";
cout << endl;
cout << "2nd container : ";
for (const int& x : second)
cout << x << " ";
cout << endl;
// 调用swap
first.swap(second);
// 交换后的值
cout <<
1st container : ";
for (const int& x : first)
cout << x << " ";
cout << endl;
// 显示第二个容器
cout << "2nd container : ";
for (const int& x : second)
cout << x << " ";
cout << endl;
return 0;
}
before swap :-
1st container : 3 2 1
2nd container : 6 5 4
after swap :-
1st container : 6 5 4
2nd container : 3 2 1