C++ 判断 map某个key 对应的值是否为空
时间: 2024-01-23 07:02:56 浏览: 171
在 C++ 的 map 中,如果某个 key 不存在,使用 map[key] 会自动创建一个该 key 对应的值,初始化为 0,因此不能通过该方式来判断某个 key 是否存在。可以使用 map 的 find() 函数来查找某个 key 是否存在,如果存在则返回该 key 对应的迭代器,否则返回 map 的 end() 迭代器。
示例代码如下:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<int, int> myMap = {{1, 10}, {2, 20}, {3, 30}};
// 判断 key = 2 是否存在
if (myMap.find(2) != myMap.end()) {
std::cout << "Key 2 exists, value is " << myMap[2] << std::endl;
} else {
std::cout << "Key 2 does not exist" << std::endl;
}
// 判断 key = 4 是否存在
if (myMap.find(4) != myMap.end()) {
std::cout << "Key 4 exists, value is " << myMap[4] << std::endl;
} else {
std::cout << "Key 4 does not exist" << std::endl;
}
return 0;
}
```
输出结果为:
```
Key 2 exists, value is 20
Key 4 does not exist
```
可以看到,使用 find() 函数可以判断某个 key 是否存在,并且可以通过返回的迭代器来获取该 key 对应的值。
阅读全文