报错系列尝试两天后发现,今天没错可报,但每天都有收获是没毛病的
那依然沿用《今日报错系列》专栏,分享点心得,也算加深印象
今日报错记录:
报错一、延迟时间
今日在研究相关延迟需求时,发现一个之前从未注意到的小问题:延迟问题。
这里只说一下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能判断所指向的对象是否存在
遗忘很正常,能在遗忘后及时复习是个十分珍贵的习惯!
在此真诚建议诸位尽可能的将过目不忘的技能点加满哦~
结束:
分享也是自己对问题再次加深理解的方式,可能不全面,但绝对有用,后面将不断完善~