2012-04-23 78 views
1

我想用2個整數作爲multimap中的一個鍵。所以我想在C++中像我可以使用std :: pair作爲std :: multimap中的鍵嗎?

std::multimap<std::pair<int, int>, MyClass> M; 
M.insert(std::pair<int,int>(X1,Y1), MyClassObject); 

可能的結構?編譯時我收到以下錯誤信息:

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

你需要實現你的std ::對類型比較。 – Nick 2012-04-23 09:27:03

+0

@尼克:爲什麼?大多數情況下,默認的一個是可以的,也許在他的情況下呢? – PlasmaHH 2012-04-23 09:29:53

+1

@Nick'std :: pair'已經可比 – Potatoswatter 2012-04-23 09:29:56

回答

3

插入需要一對密鑰值的,所以你需要

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

非常感謝! – Starter 2012-04-23 09:46:11

相關問題