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