当前位置: 首页 > news >正文

南宁网站建设怎么做推广网站

南宁网站建设,怎么做推广网站,wordpress调用文章标题,南昌网站开发c智能指针 手动管理内存很容易造成内存泄漏,现代c的智能指针可以在很大程度上帮我们缓解这个问题,降低我们的手动管理内存的心智负担,智能指针有好几种,比如shared_ptr、unique_ptr还有weak_ptr 共享指针shared_ptr 共享指针会…

c++智能指针

手动管理内存很容易造成内存泄漏,现代c++的智能指针可以在很大程度上帮我们缓解这个问题,降低我们的手动管理内存的心智负担,智能指针有好几种,比如shared_ptr、unique_ptr还有weak_ptr

共享指针shared_ptr

共享指针会记录有多少个共享指针指向同一个物体,当这个数字降为0的时候,程序就会自动释放这个物体,省去我们手动delete的烦恼,要使用智能指针首先需要#include<memory>

 shared_ptr<int> p;p = make_shared<int>(100);//或者shared_ptr<int>p{make_shared<int>(100)};

这段代码展示了我们如何定义一个智能指针以及初始化,make_shared会动态分配一块内存创建对应的资源然后让它shared_ptr指向它,它是一个模板可以接受一个类型和对应的初始化参数,除了用make_shared还可以用new初始化shared_ptr

 shared_ptr<int> p {new int(100)};

更推荐使用shared_ptr<int>p{make_shared<int>(100)};因为总体来说make_shared的效率更高。

shared_ptr怎么自动管理内存

例如用共享指针来管理Ball的创建与销毁:

class Ball
{
public:
    Ball(){
        cuot<<"A ball appears"<<endl;
    }
    ~Ball(){
        cout<<"A ball disappears"<<endl;
    }
    void Bounce(){
        cout<<"A ball jumps"<<endl;
    }
}
int main()
{
    shared_ptr<Ball> p = make_shared<Ball>();
    cout<<p.use_cuont()<<endl;
    shared_ptr<Ball>p2 = p;
    cout<<p.use_count()<<" "<<p2.use_count()<<endl;
    shared_ptr<Ball>p3 = p;
    cout<<p.use_count()<<" "<<p2.use_count()
        <<p3.use_count()<<endl;
        p.reset();
        p2.reset();
        p3.reset();
    
}

运行结果:

 

独享指针unique_ptr

unique_ptr特性

  1. 基于排他所有权模式:两个指针不能指向同一个资源

  2. 无法进行左值unique_ptr复制构造,也无法进行左值复制赋值操作,但允许临时右值赋值构造和赋值

  3. 保存指向某个对象的指针,当它本身离开作用域时会自动释放它指向的对象。

  4. 在容器中保存指针是安全的

 

使用方法:

 

运行结果:

 

weak_ptr

weak_ptr 设计的目的是为配合 shared_ptr 而引入的一种智能指针来协助 shared_ptr 工作, 它只可以从一个 shared_ptr 或另一个 weak_ptr 对象构造, 它的构造和析构不会引起引用记数的增加或减少。 同时weak_ptr 没有重载*和->但可以使用 lock 获得一个可用的 shared_ptr 对象。

  1. 弱指针的使用; weak_ptr wpGirl_1; // 定义空的弱指针 weak_ptr wpGirl_2(spGirl); // 使用共享指针构造 wpGirl_1 = spGirl; // 允许共享指针赋值给弱指针

  2. 弱指针也可以获得引用计数; wpGirl_1.use_count()

  3. 弱指针不支持 * 和 -> 对指针的访问; 在这里插入图片描述

  4. 在必要的使用可以转换成共享指针 lock();

 

 

http://www.zhongyajixie.com/news/50506.html

相关文章:

  • 做网站页面多少钱无锡百度正规公司
  • 网页制作 页面链接其他网站 站长seo查询工具
  • 网站设计二级页面怎么做信息流推广渠道有哪些
  • 如何做网站优化seo产品营销策略有哪些
  • 网站统计代码b2b平台推广网站
  • 宿迁市住房和城乡建设局海口百度seo公司
  • 有做火币网这种网站的吗百度帐号注册
  • 做网站涉及到哪些百度网盘电话人工服务
  • 湛江网站建设方案报价广告营销
  • 提高网站排名怎么做企业文化
  • 求哪位大神发人和动物做愛视频网站收录查询 站长工具
  • 手机端网站开发源码沈阳网页建站模板
  • 链家准备做贝壳网站河北网站seo外包
  • 视频制作软件哪个好用武汉百度推广优化
  • 镇江网站建设远航网络搜索引擎优化培训免费咨询
  • 有了网站怎么做优化上海app定制开发公司
  • 网站怎么做图片动态图片不显示了google推广专员招聘
  • 高碑店网站建设适合30岁女人的培训班
  • 泗阳做网站网站百度百科
  • 北师大 网页制作与网站建设免费入驻的跨境电商平台
  • 网站下拉菜单html做多大怎么可以在百度发布信息
  • 深圳seo优化外包seo的中文含义是什么意思
  • 商城类网站功能列表安徽seo推广
  • 网站设计hb软件seo免费诊断电话
  • 沈阳火车站新手怎么推广自己的店铺
  • 怎么做短链接网站上海谷歌seo公司
  • 税务 网站建设 重视大庆建站公司
  • 1如何做网站推广网络营销的真实案例分析
  • 大画册设计网站快速提高排名
  • 手机网站大全1日本域名注册网站