C ++ std :: map查找值但不查找键

时间:2017-01-06 18:01:21

标签: find stdmap

我有一个std :: map,它将结构映射到字符串:

struct st
{
 std::string name;
 int         age;
}

std::map<st, std::string>                      m_SoundStructList;  

现在我想根据一个字符串来查看地图,这是一个名称并获得结构。

std::string lName="Kate"
auto iter = m_SoundStructList.find(lName);
st lStruct=it->fisrt;

现在我只能在结构上应用find而不是字符串。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

您可能需要遍历地图并手动使用匹配元素。

对于C ++ 11,它将是

for(const auto& p : m_SoundStructList) {
    if (p.second.name == "Kate") {
        // Do something
    }
}