Добавление значений массива в std::multimap, в
Я пытаюсь использовать multimap с целочисленным ключом и значениями из массива целых чисел с 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 '{'
Я не могу понять, не удается ли мне определить структуру данных или вставить значение или и то, и другое. Заранее спасибо за помощь :)
2 ответов
вы не можете хранить массивы в контейнерах, потому что одно из требований к типам данных, хранящимся в контейнерах STL, заключается в том, что они назначаются; массивы не назначаются.
рассмотрите возможность использования std::vector
или std::array<int, 2>
.
использовать std::pair
:
typedef std::multimap<int,std::pair<int,int>> reverseHeightMap;
или :
инкапсулировать int[2] в struct :
struct int_2
{
int i_0;
int i_1;
};
typedef std::multimap<int,int_2> reverseHeightMap;