unordered_map find函数
时间: 2023-10-12 15:05:47 浏览: 100
C++11 unordered_map与map(插入,遍历,Find)效率对比。
unordered_map 的 find() 函数用于在容器中查找指定的键,并返回一个指向该键值对的迭代器。如果找到了指定的键,则返回指向该键值对的迭代器;如果未找到,则返回指向 unordered_map 结尾的迭代器(即 end() 迭代器)。
下面是使用 find() 函数在 unordered_map 中查找键的示例代码:
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap;
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["orange"] = 3;
// 使用 find() 函数查找键为 "banana" 的键值对
auto it = myMap.find("banana");
if (it != myMap.end()) {
std::cout << "找到了键为 'banana' 的键值对,值为:" << it->second << std::endl;
} else {
std::cout << "未找到键为 'banana' 的键值对" << std::endl;
}
// 使用 find() 函数查找不存在的键
auto it2 = myMap.find("grape");
if (it2 != myMap.end()) {
std::cout << "找到了键为 'grape' 的键值对,值为:" << it2->second << std::endl;
} else {
std::cout << "未找到键为 'grape' 的键值对" << std::endl;
}
return 0;
}
```
在上述示例代码中,我们创建了一个 unordered_map,并向其中插入了三对键值对。然后,我们使用 find() 函数分别查找键为 "banana" 和 "grape" 的键值对。通过判断迭代器是否等于 end() 迭代器,我们可以确定是否找到了指定的键。
注意,find() 函数的时间复杂度是 O(1),即常数时间复杂度。因为 unordered_map 使用哈希表实现,可以通过哈希函数快速定位键值对。
阅读全文