unorderd_set
时间: 2023-07-17 22:08:08 浏览: 55
`unordered_set`是C++标准库中的容器之一,它提供了一种无序、唯一元素的集合。它基于哈希表实现,因此插入、查找和删除操作的平均时间复杂度都是O(1)。
使用`unordered_set`之前,需要包含 `<unordered_set>` 头文件。
下面是一个使用`unordered_set`的简单示例:
```cpp
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> mySet;
// 插入元素
mySet.insert(5);
mySet.insert(2);
mySet.insert(8);
// 查找元素
if (mySet.count(2) > 0) {
std::cout << "Element 2 is present in the unordered_set." << std::endl;
}
// 遍历元素
for (const auto& element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
// 删除元素
mySet.erase(5);
// 再次遍历元素
for (const auto& element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
```
输出将会是:
```
Element 2 is present in the unordered_set.
8 2 5
8 2
```
在上述示例中,我们首先创建一个`unordered_set`对象`mySet`,并使用`insert()`函数插入几个整数元素。然后,使用`count()`函数检查特定元素是否存在,并使用范围循环遍历所有元素。接下来,使用`erase()`函数删除一个元素,并再次遍历剩余的元素。
`unordered_set`中的元素是无序的,每个元素都是唯一的。这意味着元素的插入顺序与遍历顺序可能不同,并且重复的元素将被自动忽略。
需要注意的是,`unordered_set`不提供基于位置的访问,因为它是基于哈希表实现的。如果需要有序集合或者根据位置访问元素,可以考虑使用`set`或`vector`等其他容器。