unordered_map find的返回值
时间: 2023-08-25 14:18:10 浏览: 164
unordered_map的find()函数返回一个迭代器,指向查找到的元素。如果在unordered_map中找到了指定的键,则返回指向该键值对的迭代器;否则,返回unordered_map的end()迭代器。
具体来说,find()函数的返回类型是一个迭代器,可以使用auto关键字自动推断类型,或者显式指定为unordered_map的迭代器类型,如unordered_map<Key, T>::iterator。
下面是一个示例,演示了如何使用find()函数并处理其返回值:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap;
// 插入键值对
umap["apple"] = 5;
umap["banana"] = 2;
umap["orange"] = 8;
// 使用find()查找元素
auto iter = umap.find("banana");
if (iter != umap.end()) {
std::cout << "Found value: " << iter->second << std::endl;
} else {
std::cout << "Key not found!" << std::endl;
}
return 0;
}
```
在这个示例中,我们创建了一个unordered_map对象,并插入了几个键值对。然后,我们使用find()函数来查找键为"banana"的元素。如果找到了该元素,我们打印出它的值;否则,打印出"Key not found!"。输出结果将是:
```
Found value: 2
```
需要注意的是,如果unordered_map中存在多个具有相同键的元素,则find()函数只返回第一个匹配的元素的迭代器。如果需要查找所有匹配的元素,可以结合使用equal_range()函数或使用范围遍历。
阅读全文