Что на самом деле происходит здесь, так это то, что std::map хранит std::pair для типов значений ключа, в данном случае std::pair<const std::string,int>. Это возможно только из-за синтаксиса синтаксиса С++ 11, который в этом случае вызывает перегрузку конструктора std::pair<const std::string,int>. В этом случае std::map имеет конструктор с std::intializer_list, который отвечает за внешние фигурные скобки.
Таким образом, в отличие от python любой создаваемый вами класс может использовать этот синтаксис для инициализации, если вы создаете конструктор, который принимает список инициализаторов (или применим синтаксис синтаксиса)