今日报错系列:weak_ptr

本文分享了Windows和Linux中Sleep/sleep函数的差异,以及弱指针weak_ptr的概念与lock函数的应用实例,提醒读者注意跨平台编程中的细节。

报错系列尝试两天后发现,今天没错可报,但每天都有收获是没毛病的
那依然沿用《今日报错系列》专栏,分享点心得,也算加深印象

报错一、延迟时间

今日在研究相关延迟需求时,发现一个之前从未注意到的小问题:延迟问题。
这里只说一下sleep。
重点来了:
1、windows 下是Sleep函数(S大写) 单位:毫秒

// 头文件
#include <windows.h> 
// 例如:
Sleep(2000); // 表示延时2秒

2、Linux下是sleep函数(s小写) 单位:秒

// 头文件
#include <unistd.h> 
// 例如:
sleep(2); // 表示延时2秒

当知道后,延迟2秒,不禁感叹,需多读书!

报错二、弱指针 weak_ptr

智能指针,其中共享指针印象最深,今天遇到了weak_ptr,忽然感到有点面生,感觉翻出小本本突击一下
来一波局部复习,待时间充裕之时再将智能指针系列完整总结一遍!
由于只用到了lock函数,由于时间问题(其实其他的函数暂时也不清楚),此处只贴lock的笔记

注:该处参考了《You图碧》大佬的文章,特此声明。

lock函数作用:
检查weak_ptr所指向的对象是否存在
如果存在,那么这个lock就返回一个指向该对象的shared_ptr(指向强引用计数就会加1);
如果不存在,lock会返回一个空的shared_ptr

举个栗子:
在这里插入图片描述

    auto pi = make_shared<int> (120);
    weak_ptr<int> piw(pi);
    auto pi2 = piw.lock();
    if(pi2 != nullptr) {
        *pi2 = 12;
        cout << *pi2 << endl;
    } else{
         cout << "shared_ptr的内存空间,不存在" << endl;
    }
    //以上代码 :weak_ptr能判断所指向的对象是否存在

遗忘很正常,能在遗忘后及时复习是个十分珍贵的习惯!

在此真诚建议诸位尽可能的将过目不忘的技能点加满哦~

结束:

分享也是自己对问题再次加深理解的方式,可能不全面,但绝对有用,后面将不断完善~

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

All In !!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值