C ++:循环遍历地图并比较密钥

时间:2017-03-20 10:51:19

标签: c++ dictionary

我试图在c ++中循环浏览地图并将密钥与某些东西进行比较,但它不起作用,这是我的代码:

map<string, vector> mymap:

for ( auto const& it : mymap ){
    if (it.first == 'e'){
            //do something
    }

}

3 个答案:

答案 0 :(得分:4)

您应该使用find()方法在地图中搜索值。这样,您就不需要自己迭代地图。例如:

auto it(mymap.find("e"));

if (it != mymap.end())
{
  // do something
}

编辑:正如Angew所说,在你的代码示例中,你试图通过一个字符('e')找到一个字符串。在比较中使用双引号来比较正确的类型("e")。

答案 1 :(得分:0)

您可以使用&#34;查找&#34;能够在容器中获得它的可用性。

map<string, vector> mymap:

for ( auto const& it : mymap ){
    if (it.find("e") != it.end()){
            //do something
    }

}

答案 2 :(得分:-1)

it.first是一个字符串,你试图将它与字符文字进行比较&#39; e。你可以将它与字符串文字进行比较&#34; e&#34;然而。或者调用find方法查找具有此键的项目,而不进行循环。