Следующий пример кода не будет компилироваться, однако его можно выполнить для компиляции, удалив спецификатор const
перед std::string
в качестве неупорядоченного ключа карты.
#include <unordered_map>
#include <utility>
#include <string>
#include <iostream>
int main()
{
int myint = 5;
std::unordered_map<const std::string, int*> map;
map.insert({"string", &myint});
std::cout << *map.at("string") << std::endl;
return 0;
}
Почему этот код не компилируетсякогда const std::string
используется в качестве ключа, когда std::string
работает?