2012-02-13 19 views
7

Próbuję użyć multimapy z kluczem całkowitym i wartości z tablicy liczb całkowitych z 2 elementami.Dodawanie wartości tablic do std :: multimap

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

Gdy próbuję dodać wartości tak:

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

uzyskać:

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

nie mogę dowiedzieć, czy jestem braku zdefiniowania struktury danych lub włożeniem wartość lub obie. Z góry dziękujemy za pomoc :)

Odpowiedz

8

Nie można przechowywać tablic w kontenerach, ponieważ jednym z wymagań dotyczących typów przechowywanych w kontenerach STL jest to, że można je przypisać; tablic nie można przypisać.

Rozważ użycie std::vector lub std::array<int, 2>.

5

zastosowanie std::pair:

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

LUB:

kapsułkowania Int [2] struktury:

struct int_2 
{ 
    int i_0; 
    int i_1; 
}; 

typedef std::multimap<int,int_2> reverseHeightMap; 
Powiązane problemy