unordered_set去重
时间: 2023-11-11 11:04:05 浏览: 73
unordered_set是C++ STL中的一个容器,它可以用来存储一组不重复的元素。unordered_set底层实现为哈希表,因此插入、查找和删除元素的时间复杂度都是O(1)。unordered_set的去重功能就是利用了这个特性,当我们向unordered_set中插入元素时,如果该元素已经存在于set中,则插入操作会失败,因为unordered_set中不允许有重复元素。我们可以通过pair类型的返回值来判断插入操作是否成功,如果返回值的second成员为false,则说明插入操作失败,即该元素已经存在于set中。下面是一个示例代码:
```
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
unordered_set<int> myset;
pair<unordered_set<int>::iterator, bool> ret;
ret = myset.insert(1);
if (!ret.second) {
cout << "error" << endl;
} else {
cout << "successful" << endl;
}
ret = myset.insert(1);
if (!ret.second) {
cout << "error" << endl;
} else {
cout << "successful" << endl;
}
return 0;
}
```
输出结果为:
```
successful
error
```
可以看到,第一次插入元素1成功,第二次插入元素1失败,因为该元素已经存在于set中。