Как первое замечание, я бы не назвал его ObjectArray
, если это карта, а не массив.
В любом случае вы можете вставить объекты таким образом:
ObjectArray myMap;
myMap.insert(std::make_pair(0, std::unique_ptr(new Class1())));
Или следующим образом:
ObjectArray myMap;
myMap[0] = std::unique_ptr(new Class1());
Разница между двумя формами заключается в том, что первая , если ключ 0
уже присутствует на карте, а второй будет перезаписывать его значение новым.
В C ++ 14 вы можете использовать std::make_unique()
вместо построения unique_ptr
из выражения new
. Например:
myMap[0] = std::make_unique();