c++ - 如何检查元素是否在 C++ 中的映射键中?

标签 c++

我想知道是否有一种方法可以检查某个元素是否包含在 map 键中。例如:

#include<iostream>
#include<map>

using namespace std;

int main()
{

map<char, int> mymap;

mymap['a'] = 1;
mymap['b'] = 2;
mymap['z'] = 26;

// I want to check if 'b' is one of the keys in map mymap.

    return 0;
}

元素 'a'、'b' 和 'z' 是 map mymap 的键。我想要一个命令,如果元素在 map 的键中,则返回 true,如果元素不在 map 的键中,则返回 false。 我环顾四周,但可以找到一个快速的内置方法来执行此操作。我错过了什么吗?有这样的方法吗?

这里有很长的路要走我想要的结果:

#include<iostream>
#include<map>

using namespace std;

bool check_key(map<char, int> mymap, char key_val);

int main()
{

map<char, int> mymap;

mymap['a'] = 1;
mymap['b'] = 2;
mymap['z'] = 26;

char key_val = 'h';

cout<<mymap.find('z')->first<<endl;

cout<<"checking "<< check_key(mymap, 'h')<<endl;
cout<<"checking "<< check_key(mymap, 'b')<<endl;

    return 0;
}

bool check_key(map<char, int> mymap, char key_val){

    for (map<char, int>::const_iterator it = mymap.begin(); it != mymap.end(); ++it ){
        if (key_val == it->first){
            return true;
        }

    }
    return false;

}

提前致谢

最佳答案

简单地检查是否 mymap.find('b') != mymap.end()

关于c++ - 如何检查元素是否在 C++ 中的映射键中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10472387/

相关文章:

c++ - 两个类可以互相访问吗?

C++11 智能指针 Make 可变大小对象函数

c++ - 下面的c++程序有没有代码优化方法

java - 无法正确地将 std::pair 暴露给 java 绑定(bind)?

c++ - 条件编译

c++ - 有没有保证 sizeof(which) > 1 的简单类型?

c++ - g++ 链接错误 - 为什么解决方法有效

c++ - Boost.Format 的编译时检查

c++ - Qt 将输出从 cout 重定向到 qDebug

C++ 代码自动格式化