unordered_map查找元素用法
时间: 2023-10-17 18:37:32 浏览: 95
unordered_map_
unordered_map是C++ STL的一个容器,用于存储键-值对的集合。可以通过键快速查找对应的值。下面是unordered_map查找元素的几种常用用法:
1. 使用find()函数:通过键查找对应的值,返回一个指向键值对的迭代器,如果找不到则返回end()迭代器。
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 35}};
auto it = umap.find("Bob");
if (it != umap.end()) {
std::cout << "Bob's age is " << it->second << std::endl;
} else {
std::cout << "Bob not found" << std::endl;
}
return 0;
}
```
2. 使用count()函数:通过键判断元素是否存在,返回1表示存在,返回0表示不存在。
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 35}};
if (umap.count("Bob")) {
std::cout << "Bob exists" << std::endl;
} else {
std::cout << "Bob does not exist" << std::endl;
}
return 0;
}
```
3. 使用at()函数:通过键直接访问对应的值,如果键不存在,会抛出一个`std::out_of_range`异常。
```cpp
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap = {{"Alice", 25}, {"Bob", 30}, {"Charlie", 35}};
try {
int age = umap.at("Bob");
std::cout << "Bob's age is " << age << std::endl;
} catch (const std::out_of_range& e) {
std::cout << "Bob not found" << std::endl;
}
return 0;
}
```
以上是unordered_map查找元素的几种常用方法。希望可以帮到你!
阅读全文