我有一个 C++ 类型的对象ObjectArray
typedef map<int64_t, std::unique_ptr<Class1>> ObjectArray;
创建一个的语法是什么unique_ptr
到一个新的类型对象Class1
并将其插入到类型的对象中ObjectArray
?
首先,我不会称它为ObjectArray
如果它是一个地图而不是一个数组。
不管怎样,你可以这样插入对象:
ObjectArray myMap;
myMap.insert(std::make_pair(0, std::unique_ptr<Class1>(new Class1())));
或者这样:
ObjectArray myMap;
myMap[0] = std::unique_ptr<Class1>(new Class1());
两种形式的区别在于,如果密钥不存在,前者就会失败。0
已存在于地图中,而第二个将用新值覆盖其值。
在 C++14 中,您可能想要使用std::make_unique() http://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique而不是构建unique_ptr
from a new
表达。例如:
myMap[0] = std::make_unique<Class1>();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)