cpp中unordered_set如何查询元素?
时间: 2023-08-13 21:35:51 浏览: 106
使用 `unordered_set` 查询元素可以使用 `find()` 函数,该函数返回一个迭代器,如果元素存在于 `unordered_set` 中,则迭代器指向该元素,否则迭代器指向 `unordered_set` 的末尾。以下是一个使用 `unordered_set` 查询元素的示例代码:
```cpp
#include <iostream>
#include <unordered_set>
int main()
{
std::unordered_set<int> my_set = {1, 2, 3, 4, 5};
int key = 3;
auto it = my_set.find(key);
if (it != my_set.end()) {
std::cout << "Element " << key << " found in my_set\n";
} else {
std::cout << "Element " << key << " not found in my_set\n";
}
return 0;
}
```
在上面的示例中,我们创建了一个 `unordered_set`,然后使用 `find()` 函数查询元素 `3` 是否存在于 `unordered_set` 中。如果元素存在,则输出 `"Element 3 found in my_set"`,否则输出 `"Element 3 not found in my_set"`。
相关问题
C++中unordered_set是什么?
C++中的unordered_set是一种无序的容器,它存储唯一的元素,并且可以快速地进行插入、删除和查找操作。与set相比,unordered_set的元素是无序的,但是查找效率非常高[^1]。
下面是一个使用unordered_set的简单示例代码:
```cpp
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> mySet;
// 插入元素
mySet.insert(10);
mySet.insert(20);
mySet.insert(30);
// 查找元素
if (mySet.find(20) != mySet.end()) {
std::cout << "元素20存在于unordered_set中" << std::endl;
}
// 删除元素
mySet.erase(30);
// 遍历元素
for (const auto& element : mySet) {
std::cout << element << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果:
```
元素20存在于unordered_set中
10 20
```
cpp unordered_set如何加入一个元素?
你可以使用`unordered_set`的成员函数`insert()`来向`unordered_set`中添加元素。`insert()`函数会将新元素插入到`unordered_set`中,并返回一个`pair`类型的值,第一个元素是一个迭代器,指向新插入的元素,第二个元素是一个布尔值,表示插入是否成功。如果`unordered_set`中已经有了该元素,则插入失败,返回的布尔值为`false`。
下面是向`unordered_set`中添加元素的示例代码:
```
#include <unordered_set>
#include <iostream>
int main() {
std::unordered_set<int> mySet;
mySet.insert(1); // 向mySet中添加元素1
mySet.insert(2); // 向mySet中添加元素2
mySet.insert(3); // 向mySet中添加元素3
// 遍历mySet中的元素
for (auto it = mySet.begin(); it != mySet.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
3 2 1
```
需要注意的是,`unordered_set`中的元素是无序的,因此遍历输出的顺序可能与插入的顺序不同。
阅读全文