通过值找键
count
if (ans.count(key1))
cout << ans[key1] << endl;
else
cout << "what?" << endl;
count(): 如果找到则为真
find
map<string, string>::iterator iter;
iter = ans.find(key);
如果存在则不等于 ans.end()
iter ->first;输出键
iter ->second;输出值
通过键找值
需要建立一个类
class finder
{
public:
finder(const string& cmp_string) :s_(cmp_string) {}
bool operator ()(const map<string, string>::value_type& item)
{
return item.second == s_;
}
private:
const string& s_;
};
其中
map<string, string>
是map 的键值对类型,可以根据需要更改
使用
map<string, string>::iterator iter;
iter = std::find_if(ans.begin(), ans.end(), finder(key));
if (iter != ans.end())
cout << iter->first << endl;
else
cout << "what?" << endl;
|