C++ STL中unordered_set swap()函数
在C++中,STL的unordered_set是一种用于存储不重复元素的容器,其底层使用的是哈希表实现。可以使用swap()函数交换两个unordered_set对象。本文将介绍unordered_set swap()函数的用法及示例。
swap()函数的用法
swap()函数是一个成员函数,用于将当前unordered_set和其他unordered_set对象进行交换。其语法如下:
void unordered_set::swap(unordered_set& other);
其中,other是要和当前unordered_set交换的另一个unordered_set对象。
swap()函数的示例
接下来,我们将演示如何在C++中使用unordered_set swap()函数。假设我们有两个unordered_set对象,分别存储集合A和集合B中的元素,现在我们想要将这两个集合交换。代码如下:
#include <iostream>
#include <unordered_set>
using namespace std;
int main ()
{
unordered_set<int> A{1, 2, 3};
unordered_set<int> B{4, 5, 6};
cout << "交换前:" << endl;
cout << "A: ";
for (auto it = A.begin(); it != A.end(); ++it)
cout << *it << " ";
cout << endl;
cout << "B: ";
for (auto it = B.begin(); it != B.end(); ++it)
cout << *it << " ";
cout << endl;
A.swap(B);
cout << "交换后:" << endl;
cout << "A: ";
for (auto it = A.begin(); it != A.end(); ++it)
cout << *it << " ";
cout << endl;
cout << "B: ";
for (auto it = B.begin(); it != B.end(); ++it)
cout << *it << " ";
cout << endl;
return 0;
}
输出结果如下:
交换前:
A: 1 2 3
B: 4 5 6
交换后:
A: 4 5 6
B: 1 2 3
可以看到,交换前集合A包含1、2、3三个元素,集合B包含4、5、6三个元素。交换后,集合A中包含4、5、6三个元素,集合B中包含1、2、3三个元素,两个集合中的元素被成功交换。
总结
本文介绍了C++ STL中unordered_set swap()函数的用法及示例。使用swap()函数可以方便地交换两个unordered_set对象中的元素。需要注意的是,交换后原来的对象中的元素被替换为另一个对象中的元素。