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
    }
}
Другие вопросы по тегам