Inverter chaves e valores

Crie uma função que troque cada chave pelo seu valor em um mapa. Os valores de entrada são únicos.

Exemplo

invert(std::map<std::string, int>{{"a", 1}, {"b", 2}}) ➞ std::map<int, std::string>{{1, "a"}, {2, "b"}}