zoukankan      html  css  js  c++  java
  • auto_ptr scoped_ptr shared_ptr weak_ptr unique_ptr

    1. auto_ptr C++98 出现,已经被废了,可以所有权的自动转让,不能作为容器元素。

    2. scoped_ptr boost中类似auto_ptr只希望在本作用域里使用,不希望被转让。拷贝构造函数和赋值构造函数都为private。

    3. shared_ptr C++11中出现,引用计数型指针,各种赞美啊。make_shared、allocate_shared的使用避免了new泛滥

      实际增加了很小的计数的空间。多线程不完美。

    4. weak_ptr被设计为与shared_ptr共同工作,可以从一个shared_ptr或者另一个weak_ptr对象构造,获得资源的观测权。但weak_ptr没有共享资源,它的构造不会引起指针引用计数的增加。同样,在weak_ptr析构时也不会导致引用计数的减少,它只是一个静静的观察者

    5. unique_ptr 配合move()使用, 确定只是唯一拥有权时候,使用unique_ptr能够降低相应的性能开销

    20121226 16:45

    个人目前理解,shared_array scoped_array 使用 new[]

    这个时候要先看是否设计有问题,尽量用shared_ptr和容器实现

  • 相关阅读:
    返回一个随机数组中的子数组中的数相加最大的和
    四则运算二之结果
    四则运算二
    UVA 11741 Ignore the Blocks
    UVA 1408 Flight Control
    UVA 10572 Black & White
    CF1138D(545,div2) Camp Schedule
    UVA 1214 Manhattan Wiring
    UVA 11270 Tiling Dominoes
    BZOJ 3261 最大异或和
  • 原文地址:https://www.cnblogs.com/logitechlike/p/2833979.html
Copyright © 2011-2022 走看看