假设我有一张这样的地图
std::map<std::string,in> mp;
mp["KeyA"] = 1;
mp["KeyB"] = 2;
mp["KeyD"] = 3;
mp["KeyF"] = 4;
现在,当我有一个已知值时,我需要获取密钥,例如,如果我有 1,我想获取 KeyA。我唯一的想法是,我需要遍历整个地图,一旦找到一个值,然后就这样返回键。例如,psudocode 解释了我的方法。
for(std::map<std::string,in>::iterator it = mp.begin();i<mp.end;++i)
{
if(it->second == somevalue)
{
return it->first;
}
}
我想知道是否有更快或更好的方法来实现这一点