随笔分类 -  C++ 知识

摘要:optional使用 代码一: #include <iostream> #include <boost/optional.hpp> using namespace boost; int main() { optional<int> op; op = 1000; std::cout << "op=" 阅读全文
posted @ 2021-11-04 19:36 小海哥哥de 阅读(344) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/business122/article/details/80882199 阅读全文
posted @ 2021-09-16 14:28 小海哥哥de 阅读(116) 评论(0) 推荐(0) 编辑
摘要:https://blog.csdn.net/nanfeibuyi/article/details/81456273 阅读全文
posted @ 2021-09-09 15:22 小海哥哥de 阅读(13) 评论(0) 推荐(0) 编辑
摘要:1、现象 程序出现core的位置不确定,但是查看core总会出现如下堆栈信息。 #0 SLL_Next (t=0x9f1ba3000) at src/linked_list.h:44 #1 SLL_Pop (list=<optimized out>) at src/linked_list.h:58 阅读全文
posted @ 2021-09-08 11:35 小海哥哥de 阅读(497) 评论(0) 推荐(0) 编辑
摘要:转载 https://www.cnblogs.com/binchen-china/p/5653337.html 阅读全文
posted @ 2021-05-18 11:08 小海哥哥de 阅读(321) 评论(0) 推荐(0) 编辑
摘要:转载 https://www.cnblogs.com/zendu/p/4987971.html 在构造自己的类时,有可能会碰到两个类之间的相互引用问题,例如:定义了类A类B,A中使用了B定义的类型,B中也使用了A定义的类型 class A { int i; B b; } class B { int 阅读全文
posted @ 2021-05-18 11:03 小海哥哥de 阅读(895) 评论(0) 推荐(0) 编辑
摘要:libconfig库的官方网站:http://www.hyperrealm.com/libconfig/ libconfig是什么? libconfig是一个结构化的配置文件库,通常定义为配置文件,例如test.cfg 。它比xml可读性更好,而且更简洁;而且不像xml,它是 type-aware类 阅读全文
posted @ 2021-05-18 10:36 小海哥哥de 阅读(726) 评论(0) 推荐(0) 编辑
摘要:具体情况如下: 阅读全文
posted @ 2021-04-26 21:15 小海哥哥de 阅读(231) 评论(0) 推荐(0) 编辑
摘要:### 第一种 ``` cannot pass objects of non-trivially-copyable type ‘std::string {aka class std::basic_string} ``` - 1、能看到出现的问题在于 string; - 2、然后发现是在日志打印位置。 阅读全文
posted @ 2021-02-09 17:24 小海哥哥de 阅读(650) 评论(0) 推荐(0) 编辑
摘要:首先贴链接这是我遇到的讲的最清晰的 https://www.jianshu.com/p/03eea8262c11 阅读全文
posted @ 2021-02-05 20:26 小海哥哥de 阅读(91) 评论(0) 推荐(0) 编辑
摘要:‘#’的含义 转换, 完成代码到字符串的转换。 #define CONVERT(name) #name void main() { printf("result:%s.", CONVERT(james)); return 0; } 应用场景:我的理解是:通过使用这种转换就可以不用使用 双引号 的情况 阅读全文
posted @ 2021-01-20 10:54 小海哥哥de 阅读(609) 评论(0) 推荐(0) 编辑
摘要:resize() reserve()函数的区别 首先介绍size和capacity的含义 size:指的是vector包含元素的个数。size()函数可以获取size大小。 capacity:指的的是vector包含元素的能力,也就是在size小于capacity不会进行内存拷贝;一旦size大于c 阅读全文
posted @ 2021-01-14 10:49 小海哥哥de 阅读(322) 评论(0) 推荐(0) 编辑
摘要:官网 一、总述 在C++11中,我们可以使用条件变量(condition_variable)实现多个线程间的同步操作;当条件不满足时,相关线程被一直阻塞,直到某种条件出现,这些线程才会被唤醒。 主要成员函数如下: 二、具体函数: 1、wait函数: (1)wait(unique_lock <mute 阅读全文
posted @ 2020-11-19 21:38 小海哥哥de 阅读(38947) 评论(0) 推荐(7) 编辑
摘要:转载: https://www.jb51.net/article/118285.htm https://www.jianshu.com/p/8e4f9978e5b8 阅读全文
posted @ 2020-11-17 15:39 小海哥哥de 阅读(111) 评论(0) 推荐(0) 编辑
摘要:子进程和父进程 在父进程中通过fork()函数可以创建子进程,如果返回值==0,为子进程;否则是为父进程。子进程得到的除了代码段是与父进程共享以外,其他所有的都是父进程的一个副本,子进程的所有资源都继承父进程,得到父进程资源的副本,但是二者并不共享地址空间。两个是单独的进程,继承了以后二者就没有什么 阅读全文
posted @ 2020-11-15 21:50 小海哥哥de 阅读(2275) 评论(0) 推荐(0) 编辑
摘要:1、左值和右值 左值:指有名字的变量,可以被赋值,可以在多条语句中使用。 右值:临时变量,没有名字,只能在一条语句中出现,不能被赋值。 2、左值引用 左值引用:符号‘&’,是变量的别名。 3、右值引用 右值引用:为了和左值区分,右值的声明符号为‘&&’。 #include <iostream> vo 阅读全文
posted @ 2020-11-15 20:06 小海哥哥de 阅读(415) 评论(0) 推荐(0) 编辑
摘要:虚函数表: 一般位于对象的最前端,但是并不一定是这样的,这是由编译器决定的。 C++中虚函数是通过一张虚函数表(Virtual Table)来实现的,在这个表中,主要是一个类的虚函数表的地址表;这张表解决了继承、覆盖的问题。在有虚函数的类的实例中这个表被分配在了这个实例的内存中,所以当我们用父类的指 阅读全文
posted @ 2020-11-15 17:07 小海哥哥de 阅读(147) 评论(0) 推荐(0) 编辑
摘要:new和delete操作符重载: 内存管理运算符 new、new[]、delete、delete[] 可以进行重载,重载形式即可以是类的成员函数,也可以是全局函数。一般情况下,只有在需要自己管理内存的时候重载运算符。 以成员函数的形式重载new运算符: void* className::operat 阅读全文
posted @ 2020-11-15 10:16 小海哥哥de 阅读(363) 评论(0) 推荐(0) 编辑
摘要:https://www.jianshu.com/p/e4919f1c3a28 什么是智能指针? 智能指针是一个RAII(Resource Acquisition is initialization资源获取即初始化)类模型,用于动态分配内存。它提供所有普遍指针提供的接口,却很少发生异常。在构造是,它分 阅读全文
posted @ 2020-11-15 00:11 小海哥哥de 阅读(189) 评论(0) 推荐(0) 编辑
摘要:死锁概念及产生原理 概念:多个并发进程因争夺系统资源而产生相互等待的现象。 原理:当一组进程中的每个进程都在等待某个事件发生,而只有这组进程中的其他进程才能触发该事件,这就称这组进程发生了死锁。 本质原因: 1)、系统资源有限。 2)、进程推进顺序不合理。 死锁产生的4个必要条件 1、互斥:某种资源 阅读全文
posted @ 2020-11-14 16:55 小海哥哥de 阅读(792) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示