Как перевернуть словарь(map)?
Нужно написать программу, которая меняет ключ и значение местами
#include<iostream>
#include<string>
#include<map>
using namespace std;
void BuildMap(map<string, string> m)
{
string word1;
string word2;
for(const auto&[key, value]: m)
{
word1 = key;
word2 = value;
cout<<word2<<" "s<<word1<<endl;
}
}
map<string, string> g = {{"first"s, "second"s}, {"left"s, "right"s}};
int main()
{
BuildReservedMap(g);
return 0;
}
Я написал эту программу, но она не работает, получается вот такая ошибка: Ошибка компиляции: /tmp/tmpc5imz872.cpp: In function ‘void tests::TestEmpty()’: /tmp/tmpc5imz872.cpp:32:16: error: ‘BuildReversedMap’ was not declared in this scope; did you mean ‘BuildReservedMap’? 32 | Assert(BuildReversedMap(input) == input, ""); | ^~~~~~~~~~~~~~~~ | BuildReservedMap compilation terminated due to -Wfatal-errors. Как её можно исправить?
Ответы (1 шт):
Автор решения: dIm0n
→ Ссылка
У вас функция BuildMap называется, а вызываете BuildReservedMap.
Исправленный вариант:
#include<iostream>
#include<string>
#include<map>
using namespace std;
void BuildMap(map<string, string> m)
{
string word1;
string word2;
for(const auto&[key, value]: m)
{
word1 = key;
word2 = value;
cout<<word2<<" "s<<word1<<endl;
}
}
map<string, string> g = {{"first"s, "second"s}, {"left"s, "right"s}};
int main()
{
BuildMap(g);
return 0;
}