c++中unique_ptr的简单使用

某个时刻只能有一个unique_ptr指向一个给定对象,当unique_ptr被销毁时,他所指向的对象也会被销毁。

所以要注意,初始化unique_ptr必须采用直接初始化的形式,所以定义它时,可以采取绑定到一个new返回的指针上,例如:

  unique_ptr<int> p1 //可以指向一个int的unique_ptr,此时默认值为nullptr
  unique_ptr<int> p2(new int(21)) //指向一个值为21的int

由于一个unique_ptr拥有指向它的对象,因此unique_ptr不支持普通的拷贝或者复制操作:

  unique_ptr<int> p2(p1) //错误
  unique_ptr<int> p1 = p2 //错误

但是我们可以通过release和reset做到类似的功能:

  unique_ptr<int> p2(p1.release())  //将p1中对象的所有权从p1转移到p2, p1置为空

  unique_ptr<int> p3(new int(12))
  p3.reset(p1.release())                   //释放p3原来指向的内存并将p1的对象所有权转移到p3中
上一篇:980. Unique Paths III


下一篇:antD中关于table组件中报这样的警告warning.js?2149:7 Warning: [antdv: Each record in table should have a unique `k