2012-02-13 9 views
7

整数キーを持つマルチマップと、2つの要素を持つ整数の配列からなる値を使用しようとしています。std :: multimapに配列の値を追加する

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

私が手::

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

私は、データ構造を定義するか、挿入に失敗していた場合、私は理解することはできません私はこのような値を追加しようとすると

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

値、またはその両方。助けを前もって感謝します。

答えて

8

STLコンテナに格納されているデータ型の要件の1つが割り当て可能であるため、配列をコンテナに格納することはできません。配列は割り当てできません。

std::vectorまたはstd::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; 
関連する問題