我很想知道是否有一种方法可以检查地图键中是否包含元素.例如:
#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;
}
Run Code Online (Sandbox Code Playgroud)
元素'a','b'和'z'是地图mymap的关键.我想要一个命令,true
如果元素在地图的键中,并且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;
}
Run Code Online (Sandbox Code Playgroud)
先感谢您
您可以通过比较find()
返回的迭代器的结果来检查键是否存在end()
:
std::map<char, int> my_map;
// add items
std::map<char, int>::iterator found = my_map.find('b');
if (found == my_map.end())
{
// 'b' is not in the map
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
167 次 |
最近记录: |