如何在int,string的地图上使用find

时间:2014-05-07 02:47:57

标签: c++ map

这可能很容易,但我已经醒了太久了。

所以我有一张地图< int,string>我正在尝试使用函数find

iter=mapInKey.find(int)->second;
if (iter != mapInKey.end() )
{
    outFileTxt << iter;
}

但是我收到了这个错误:no matching function for call to std::map<int, std::basic_string<char> >::find(std::string&)

我想要做的就是输出int

的另一对值

1 个答案:

答案 0 :(得分:2)

喜欢这个

    std::map <int,std::string>::iterator it = mapInKey.find( val ); //val is the integer key you search for

    if(it != mapInKey.end()){
     // do something 
     cout<< it->second; // this will print the string
   }

修改

我想你想用字符串搜索。然后你宣布地图错了。使用此

map<string,int> m;
m["Hi"]= 1;
m["Hello"]= 2;
map<string,int>::iterator it = m.find("Hello");
if(it != m.end())
{
  cout<< it->first<<":"<<it->second<<endl;
}