Gperftools性能分析工具的简单使用

参考资料:https://bitjoy.net/2017/02/07/gperftools-tutorial/该工具有两种使用方法:不改变原有代码,在运行程序之前预置环境改变自己的程序代码,并在编译时链接对应的库安装gperftools性能分析工具:sudo apt-get install goog


cpp编码规范指南

C++代码规范指南版本修改人评审人修订时间修订内容V1.00施展-2021-08-05评审版发布V1.01赖远志、陈培哲(1-3章)、诸家炜(4-6章)、施展(7-9章)软件TMG全员2021-09-06正式发布目录C++代码规范指南目录正文0 阅前说明1 头文件1.1 Self-contained


cpp类接口设计

让接口更容易被正确的使用,而且不容易被错误的使用Choose good namesclass AbcInterface { public: bool CreateFilter() { return false; } };Create一般用于对象的创建,但是返回值是个bool,Create一个Boo


Cpp智能指针

我们知道除了静态内存和栈内存外,每个程序还有一个内存池,这部分内存被称为自由空间或者堆。程序用堆来存储动态分配的对象即那些在程序运行时分配的对象,当动态对象不再使用时,我们的代码必须显式的销毁它们。​在C++中,动态内存的管理是用一对运算符完成的:new和delete,new:在动态内存中为对象分配


Cpp线程

1、创建一个线程创建线程比较简单,使用std的thread实例化一个线程对象就创建完成了,示例:#include <iostream>#include <thread>using namespace std;void t1() //普通的函数,用来执行线程{ for


Cpp前向声明

可以声明一个类而不定义它。这个声明,有时候被称为前向声明(forward declaration)。在声明之后,定义之前,类Screen是一个不完全类型(incompete type),即已知Screen是一个类型,但不知道包含哪些成员。不完全类型只能以有限方式使用,不能定义该类型的对象,**不完全


Cpp匿名命名空间

当定义一个命名空间时,可以忽略这个命名空间的名称: namespce { char c; int i; double d; }编译器在内部会为这个命名空间生成一个唯一的名字,而且还会为这个匿名的命名空间生成一条using指令。所以上面的代码在效果上等同于:namespace


Cpp宏定义

一、#define的基本用法1.1 #define的概念#define命令是C语言中的一个宏定义命令,它用来将一个标识符定义为一个字符串,该标识符被称为宏名,被定义的字符串称为替换文本。简单的宏定义#define <宏名> <字符串>例: #define PI 3.14159


Cpp 线程中的锁

互斥锁(Mutex)互斥锁用于控制多个线程对他们之间共享资源互斥访问的一个信号量。也就是说是为了避免多个线程在某一时刻同时操作一个共享资源。例如线程池中的有多个空闲线程和一个任务队列。任何是一个线程都要使用互斥锁互斥访问任务队列,以避免多个线程同时访问任务队列以发生错乱。​在某一时刻,只有一个线程可


C++学习过程中的问题

1、explicit关键字构造函数被explicit修饰后, 就不能再被隐式调用了2、p[1]int *p = &a;int a = p[1]; 等价于 int a = *(p+1);​3、c++类型转换 reinterpret_cast[](https://zhuanlan.zhihu.c