使用unordered_map.find后判断是否找到的if语句怎么写
时间: 2023-08-02 22:24:05 浏览: 49
可以这样写:
```c++
unordered_map<int, string> mp;
// 假设 mp 中有一些键值对
int key = 123;
auto iter = mp.find(key);
if (iter != mp.end()) {
// 找到了
string value = iter->second;
// 处理 value
} else {
// 没找到
// 处理找不到的情况
}
```
`mp.find(key)` 返回的是一个迭代器,如果找到了,那么指向对应键值对的迭代器就会被返回,否则返回 `mp.end()`,表示没有找到。因此,可以用 `iter != mp.end()` 来判断是否找到,如果 `iter != mp.end()` 为 true,说明找到了,否则说明没找到。
相关问题
C++ unordered map 怎么用
C++11引入了`unordered_map`,可以通过包含头文件`<unordered_map>`来使用它。为了避免每次都需要写`std::unordered_map`,你可以使用`using`语句引入命名空间`std`。下面是一个使用`unordered_map`的示例代码:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, int> myMap; // 创建一个键值对为<string, int>的unordered_map
// 插入元素
myMap["apple"] = 5;
myMap["banana"] = 2;
myMap["orange"] = 8;
// 访问元素
cout << "Number of apples: " << myMap["apple"] << endl;
// 遍历unordered_map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << it->first << ": " << it->second << endl;
}
// 查找元素
if (myMap.find("banana") != myMap.end()) {
cout << "The value of banana is: " << myMap["banana"] << endl;
}
// 删除元素
myMap.erase("orange");
return 0;
}
```
在这个例子中,我们创建了一个`unordered_map`,键类型为`string`,值类型为`int`。我们使用`[]`操作符插入了几个元素,并使用`cout`输出了某些元素的值。我们也展示了如何遍历`unordered_map`,查找元素和删除元素。你可以按照这个例子来使用`unordered_map`。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [c++ unordered_map和map的区别](https://blog.csdn.net/weixin_52115456/article/details/127698255)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
C++ hash函数 unordered map
C++11引入了`unordered_map`,可以通过包含头文件`<unordered_map>`来使用它。为了避免每次都需要写`std::unordered_map`,你可以使用`using`语句引入命名空间`std`。下面是一个使用`unordered_map`的示例代码:
```cpp
#include <iostream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, int> myMap; // 创建一个键值对为<string, int>的unordered_map
// 插入元素
myMap["apple"] = 5;
myMap["banana"] = 2;
myMap["orange"] = 8;
// 访问元素
cout << "Number of apples: " << myMap["apple"] << endl;
// 遍历unordered_map
for (auto it = myMap.begin(); it != myMap.end(); ++it) {
cout << it->first << ": " << it->second << endl;
}
// 查找元素
if (myMap.find("banana") != myMap.end()) {
cout << "The value of banana is: " << myMap["banana"] << endl;
}
// 删除元素
myMap.erase("orange");
return 0;
}
```
在这个例子中,我们创建了一个`unordered_map`,键类型为`string`,值类型为`int`。我们使用`[]`操作符插入了几个元素,并使用`cout`输出了某些元素的值。我们也展示了如何遍历`unordered_map`,查找元素和删除元素。你可以按照这个例子来使用`unordered_map`。<span class="em">1</span><span class="em">2</span><span class="em">3</span>