2012-02-13 79 views
7

我想用一個整數鍵和2個元素的整數數組構成的值使用多圖。將數組值添加到std :: multimap

typedef std::multimap<int,int[2]> reverseHeightMap; 
reverseHeightMap container; 

當我嘗試添加值是這樣的:

container.insert(std::pair<int,int[2]>(5,{1,2})); 

我得到:

error C2143: syntax error: missing ')' before '{' 

如果我在定義數據結構或將發生故障的我想不通價值或兩者兼而有之。在此先感謝幫助:)

回答

8

您不能將數組存儲在容器中,因爲存儲在STL容器中的數據類型的要求之一是它們是可分配的;數組不可分配。

考慮使用std::vectorstd::array<int, 2>

5

std::pair使用:

typedef std::multimap<int,std::pair<int,int>> reverseHeightMap; 

OR:

包封INT [2]的結構:

struct int_2 
{ 
    int i_0; 
    int i_1; 
}; 

typedef std::multimap<int,int_2> reverseHeightMap;