我正在尝试添加唯一的映射指针。
auto monkey= std::unique_ptr<Animal> (new Animal(1,"Tom"));
std::map<int, std::unique_ptr<const Animal>> animals; //Map of animals
animals.insert(pair<int, unique_ptr<Animal>>(1,monkey)); // Error here
Error:error: no matching function for call to 'std::pair<int, std::unique_ptr<Animal> >::pair(int&, std::unique_ptr<Animal>&)'
添加它的方式是什么?
[std::unique_ptr
不可复制,但可以移动,必须std::move
。
[我建议您在尝试将std::unique_ptr
插入std::map
时使用以下内容: