将std :: unique_ptr与标准容器一起使用

Oni*_*ink 7 c++ pointers unique-ptr c++11

当我意识到C++ 11添加unique_ptrs 时,我一直在寻找一种方法来做动态指针的安全向量和映射.我研究了如何在Google上使用它们,但是在寻找细节方面却没有成功.我需要知道的是以下内容:

  1. unique_ptr除了自动内存收集之外,指针和s 之间究竟有什么不同?
  2. 我如何unique_ptr从矢量或地图中删除?除了擦除迭代器之外,还有什么特殊的代码吗?

Bil*_*eal 13

  1. 没有.A unique_ptr只是一个指针的包装器,它会在unique_ptr销毁时删除指针.它没有开销(就像auto_ptr它替换的模板一样).
  2. 不 - 它会起作用.实际上困难来自于指针插入向量或映射 - 而您必须unique_ptr移入容器中.

  • +1,也许添加一个插入的例子(特别是一个显示为什么需要移动)将有所帮助. (2认同)