我可以在std :: multimap中使用std :: pair作为键吗?

时间:2012-04-23 09:25:49

标签: c++ stl

我想在multimap中使用2个整数作为键。所以我想知道是一个像

这样的结构
std::multimap<std::pair<int, int>, MyClass> M;
M.insert(std::pair<int,int>(X1,Y1), MyClassObject);

可能在C ++中?编译时,我收到以下错误消息:

C:\1\1-build-desktop-Qt_4_7_4_for_Desktop_-_MinGW_4_4__Qt_SDK_________\..\main.cpp:199: 
error: no matching function for
call to 'std::multimap<std::pair<int, int>, MyClass, std::less<std::pair<int, int> >,
std::allocator<std::pair<const std::pair<int, int>, MyClass> > >::insert(std::pair<int, int>,
MyClass)'

1 个答案:

答案 0 :(得分:3)

insert需要一对键值,所以你需要

M.insert(std::make_pair(std::make_pair(X1,Y1),MyClassObject));