2017-01-06 28 views
0

我有一个std ::地图,一个结构映射到一个字符串:C++的std ::地图查找值,但没有钥匙

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; 

现在只有我可以应用查找结构,但字符串。

任何帮助,将不胜感激。

回答

0

您可能必须迭代映射并手动使用匹配元素。

对于C++ 11将是

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