2012-02-13 13 views
7

Bir tamsayı anahtarı ve 2 öğeli tamsayılardan oluşan değerlerle birlikte bir multimap kullanmaya çalışıyorum. Böyle değerler eklemek çalıştığınızdastd :: multimap için dizi değerleri ekleme

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

:

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

alıyorum:

error C2143: syntax error: missing ')' before '{' 
Ben veri yapısını tanımlayan veya ekleme de başarısız edilirsem bilemiyorum

değer veya her ikisi de. Yardım için şimdiden teşekkürler :)

cevap

8

Dizileri, STL kapsayıcısında saklanan veri türleri için gereksinimlerden birinin atanabilir olduğundan dolayı kapsayıcılarda saklayamazsınız; diziler atanamaz.

std::vector veya std::array<int, 2>'u kullanmayı düşünün.

5

kullanımı std::pair:

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

TD:

kapsülü int [2] yapı içinde:

struct int_2 
{ 
    int i_0; 
    int i_1; 
}; 

typedef std::multimap<int,int_2> reverseHeightMap; 
İlgili konular