C++ ';std::配对';:使用类模板需要模板参数列表

C++ ';std::配对';:使用类模板需要模板参数列表,c++,unordered-map,std-pair,C++,Unordered Map,Std Pair,我试图创建一个无序的_映射,其键将是Gdiplus::Color类的成员和一个float,但我不明白为什么我不能这样做。这是我的声明 std::unordered_map<std::pair(Gdiplus::Color, float), std::shared_ptr<Gdiplus::Pen>> mymap; std::无序映射mymap; 您的std::pair类型使用了错误的括号。模板参数应放在尖括号内: std::pair<Gdiplus::Color,

我试图创建一个无序的_映射,其键将是Gdiplus::Color类的成员和一个float,但我不明白为什么我不能这样做。这是我的声明

std::unordered_map<std::pair(Gdiplus::Color, float), std::shared_ptr<Gdiplus::Pen>> mymap;
std::无序映射mymap;

您的
std::pair
类型使用了错误的括号。模板参数应放在尖括号内:

std::pair<Gdiplus::Color, float>
std::pair
实例化
std::pair
类模板的语法不正确:应该是

 std::pair<Gdiplus::Color, float>
 //       ^                     ^
std::pair // ^ ^ 用尖括号代替圆括号。因此,整个宣言变成:

std::unordered_map<
    std::pair<Gdiplus::Color, float>, 
//           ^                     ^
    std::shared_ptr<Gdiplus::Pen>
    > mymap;
std::无序映射<
std::pair,
//           ^                     ^
std::共享的ptr
>mymap;

wow。非常感谢。我在看make_pair声明,它使用了()…这解释了很多。谢谢