Переворот словаря Map

Я уже писал вопрос на эту тему, но появилась новая проблема. Кажется, я делаю что - то не так. Эта программа - задача из практикума. То, что я написал работает правильно, словарь переворачивается. Вот код:

#include<iostream>
#include<string>
#include<map>

using namespace std;

map<string, string> BuildReversedMap(const map<string, string>& m) {
    //...
    map<string, string> NewMap;
    for(const auto& [key, value]:m)
    {
        NewMap[key] = value;
    }
    return NewMap;
}
map<string, string> g = {{"cat", "felis catus"}, {"dog", "canis lupus"}};
int main()
{
    for(const auto& [key1, value1]: BuildReversedMap(g))
        cout<<"{"s<<value1<<", "<<key1<<"},"s;
    return 0;
}

Но в ответ я получаю это:

Задача прошла 2/4 проверок

Возможные проблемы:

  • Ваша функция неправильно обращает словарь

Я что - то путаю или дело не в словаре?


Ответы (1 шт):

Автор решения: МС Чемодан
#include<iostream>
#include<string>
#include<map>

using namespace std;

map<string, string> BuildReversedMap(const map<string, string>& m) {
    //...
    map<string, string> NewMap;
    for(const auto& [key, value]:m)
    {
        NewMap[value] = key;
    }
    return NewMap;
}
map<string, string> g = {{"cat", "felis catus"}, {"dog", "canis lupus"}};
int main()
{
    for(const auto& [key1, value1]: BuildReversedMap(g))
        cout<<"{"s<<key1<<", "<<value1<<"},"s;
    return 0;
}
→ Ссылка