2012-02-13 64 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;