C++里的unorder_set
时间: 2023-07-07 15:06:31 浏览: 122
`unordered_set` 是 C++ STL 中的一个容器,它是基于哈希表实现的,可以用来存储一组无序的、不重复的元素。它的特点是查找、插入、删除的时间复杂度都是 O(1),因为它内部使用哈希表来实现数据存储和查找。在使用 `unordered_set` 时,我们需要提供一个哈希函数来对元素进行哈希,同时还需要提供一个相等比较函数来检查两个元素是否相等。下面是一个简单的示例代码:
```c++
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> s = {3, 5, 7, 2, 1};
s.insert(6);
s.insert(3); // 重复插入,不会有影响
for (auto x : s) {
std::cout << x << " ";
}
std::cout << std::endl;
if (s.find(5) != s.end()) {
std::cout << "5 is in the set" << std::endl;
}
s.erase(2);
for (auto x : s) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
7 6 5 3 2 1
5 is in the set
7 6 5 3 1
```
可以看到,在 `unordered_set` 中,元素的顺序是无序的,每个元素只会出现一次,插入时如果元素已经存在,不会对集合产生影响,删除时可以直接使用元素的值进行删除。
阅读全文