C++ 判断map中是否包含某元素
时间: 2024-01-25 09:04:05 浏览: 122
在 C++ 中,判断 std::map 是否包含某个键或值可以使用 find() 或 count() 成员函数。
1. 使用 find() 函数
find() 函数接受一个键作为参数,返回一个指向包含该键的元素的迭代器。如果 map 中不存在该键,则返回指向 map 末尾的迭代器。因此,可以通过判断返回的迭代器是否等于 map 的 end() 迭代器来判断 map 是否包含该键。
下面是一个使用 find() 函数判断 map 是否包含某个键的示例:
```c++
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> my_map = {{"one", 1}, {"two", 2}, {"three", 3}};
// 判断 map 是否包含 "two" 键
if (my_map.find("two") != my_map.end()) {
std::cout << "my_map contains key 'two'\n";
}
// 判断 map 是否包含 "four" 键
if (my_map.find("four") == my_map.end()) {
std::cout << "my_map does not contain key 'four'\n";
}
return 0;
}
```
2. 使用 count() 函数
count() 函数接受一个键作为参数,返回该键在 map 中出现的次数,因为 map 中每个键最多出现一次,所以如果 count() 函数返回值为 1,则说明 map 中包含该键;如果返回值为 0,则说明 map 中不包含该键。
下面是一个使用 count() 函数判断 map 是否包含某个键的示例:
```c++
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> my_map = {{"one", 1}, {"two", 2}, {"three", 3}};
// 判断 map 是否包含 "two" 键
if (my_map.count("two") == 1) {
std::cout << "my_map contains key 'two'\n";
}
// 判断 map 是否包含 "four" 键
if (my_map.count("four") == 0) {
std::cout << "my_map does not contain key 'four'\n";
}
return 0;
}
```
需要注意的是,如果需要判断 map 是否包含某个值,需要遍历整个 map 才能进行判断。
阅读全文