我正在尝试使用带有整数键的多图和由2个元素组成的整数数组的值。
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 '{'
我无法确定我是否未能定义数据结构或插入值,或两者兼而有之。在此先感谢您的帮助:)
答案 0 :(得分:8)
您无法在容器中存储数组,因为存储在STL容器中的数据类型的要求之一是它们是可分配的;数组不可分配。
考虑使用std::vector
或std::array<int, 2>
。
答案 1 :(得分:5)
使用std::pair
:
typedef std::multimap<int,std::pair<int,int>> reverseHeightMap;
或:
在struct:
中封装int [2]struct int_2
{
int i_0;
int i_1;
};
typedef std::multimap<int,int_2> reverseHeightMap;