[英]How can I check if an element is in map keys in C++?
我想知道是否有一種方法可以檢查元素是否包含在地圖鍵中。 例如:
#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”是地圖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;
}
先感謝您
只需檢查是否mymap.find('b') != mymap.end()
。
您可以通過將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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.