C++ std::map ищет значения, но не ключи
У меня есть 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 ответ
Возможно, вам придется перебирать карту и использовать соответствующий элемент вручную.
Для C++11 это было бы
for(const auto& p : m_SoundStructList) {
if (p.second.name == "Kate") {
// Do something
}
}