2012-02-13 38 views
7

Tôi đang cố gắng sử dụng một bội số với một phím số nguyên và các giá trị được tạo thành từ mảng các số nguyên với 2 phần tử.Thêm giá trị mảng vào tiêu chuẩn :: multimap

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

Khi tôi cố gắng thêm giá trị như thế này:

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

tôi nhận được:

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

Tôi không thể hình dung nếu tôi thất bại trong việc xác định cấu trúc dữ liệu hoặc chèn giá trị hoặc cả hai. Cảm ơn trước sự giúp đỡ :)

Trả lời

8

Bạn không thể lưu trữ mảng trong vùng chứa vì một trong các yêu cầu đối với các kiểu dữ liệu được lưu trữ trong vùng chứa STL là chúng được gán; mảng không thể gán.

Cân nhắc sử dụng std::vector hoặc std::array<int, 2>.

5

sử dụng std::pair:

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

OR:

Encapsulate int [2] trong struct:

struct int_2 
{ 
    int i_0; 
    int i_1; 
}; 

typedef std::multimap<int,int_2> reverseHeightMap; 
Các vấn đề liên quan