cpp unordered_set查找一个元素是否存在?
时间: 2023-07-25 13:21:58 浏览: 140
可以使用unordered_set的find()函数来查找一个元素是否存在。如果元素存在,则find()函数返回指向该元素的迭代器,如果元素不存在,则返回unordered_set的end()迭代器。示例代码如下:
```cpp
#include <iostream>
#include <unordered_set>
using namespace std;
int main() {
unordered_set<int> mySet = {1, 2, 3, 4, 5};
int target = 3;
auto iter = mySet.find(target);
if (iter != mySet.end()) {
cout << "元素 " << target << " 存在" << endl;
} else {
cout << "元素 " << target << " 不存在" << endl;
}
return 0;
}
```
运行结果为:
```
元素 3 存在
```
在实际应用中,我们可以根据find()函数的返回值来判断元素是否存在,从而进行相应的处理。
相关问题
cpp unordered_set
unordered_set是C++ STL中的一个容器,用于存储一组唯一的元素,它的实现基于哈希表。与set容器不同的是,unordered_set并不会进行元素的排序,因此其查找和插入操作的时间复杂度都为O(1)。
unordered_set的用法与set类似,可以通过以下方式定义一个unordered_set:
```cpp
#include <unordered_set>
using namespace std;
unordered_set<int> s; // 定义一个空的unordered_set
```
在unordered_set中插入元素可以使用insert()函数:
```cpp
s.insert(1); // 向unordered_set中插入元素1
s.insert(2); // 向unordered_set中插入元素2
```
在unordered_set中查找元素可以使用find()函数:
```cpp
auto iter = s.find(1); // 查找元素1
if (iter != s.end()) {
cout << "元素1在unordered_set中" << endl;
} else {
cout << "元素1不在unordered_set中" << endl;
}
```
在unordered_set中删除元素可以使用erase()函数:
```cpp
s.erase(1); // 从unordered_set中删除元素1
```
总的来说,unordered_set是一个高效的数据结构,可以用于快速查找和去重。
cpp unordered_set的方法
`unordered_set` 是 C++ STL 中的一个关联容器,用于存储一组元素,其中每个元素唯一且无序。以下是 `unordered_set` 常用的方法:
1. 插入元素:
```cpp
unordered_set<int> set1;
set1.insert(1);
set1.insert(2);
set1.insert(3);
```
2. 删除元素:
```cpp
set1.erase(2); // 删除元素2
set1.clear(); // 清空集合中的所有元素
```
3. 查找元素:
```cpp
if (set1.find(3) != set1.end()) {
cout << "set1 contains 3" << endl;
}
```
4. 遍历元素:
```cpp
for (auto it = set1.begin(); it != set1.end(); ++it) {
cout << *it << " ";
}
```
或者使用范围 `for` 循环:
```cpp
for (auto x : set1) {
cout << x << " ";
}
```
5. 获取元素数量:
```cpp
cout << "set1 contains " << set1.size() << " elements" << endl;
```
更多关于 `unordered_set` 的信息,请参考 C++ STL 文档。
阅读全文