当我意识到C ++ 11添加了unique_ptr
时,我一直在寻找一种方法来做动态指针的安全向量和映射。我研究了如何在Google上使用它们,但是在寻找细节方面却没有成功。我需要知道的是:
unique_ptr
之间究竟有什么不同? unique_ptr
?除了擦除迭代器之外,还有什么特殊的代码吗?答案 0 :(得分:13)
unique_ptr
只是指针的包装器,它会在unique_ptr
被销毁时删除指针。它没有开销(就像它替换的auto_ptr
模板一样)。答案 1 :(得分:4)
不同之处在于unique_ptr遵循移动语义。此外,顾名思义,您无法复制它。
删除std::vector<std::unique_ptr<T> >
的元素将有效删除指针所指向的内容。