菜鸟笔记
提升您的技术认知

C++ 笔记

C++内存错误检测利器—AddressSanitizer

菜鸟阅读 : 25赞(0)

自操作系统诞生以来,编写内存安全的代码一直是一个比较困难的问题 (另一个问题则是保证线程安全)。来自微软安全响应中心(MSRC)近20年来的安全数据显示,有约 70% 的安全漏洞补丁是针对内存安全漏洞的修复。 由于 C/C++ 不是一门内存...

C++反射实现—根据类名动态创建对象

菜鸟阅读 : 29赞(0)

我们在编写C++框架时,经常会涉及到一项基础技术,就是根据“一个动态库 + 一个类名称字符串“,动态的创建类对象。 这样做的好处是可以实现框架与业务代码的彻底解耦。框架不用关心业务侧的具体实现细节,只需要提供一个基类由业务方继承实现,然后业...

C++性能优化—CPU占用分析

菜鸟阅读 : 25赞(0)

软件的性能分析,往往需要查看 CPU 耗时,了解瓶颈在哪里。perf和火焰图是性能分析的利器。本文主要介绍它们的基本用法。 一、perf性能分析工具 perf (performance 的缩写)是 Linux 系统原生提供的性能分析工具,会...

std::shared_mutex读写锁

菜鸟阅读 : 113赞(0)

读写锁把对共享资源的访问者划分成读者和写者,读者只对共享资源进行读访问,写者则需要对共享资源进行写操作。C++17开始,标准库提供了shared_mutex类(在这之前,可以使用boost的shared_mutex类或系统相关api)。和其...

C++枚举类型详解

菜鸟阅读 : 74赞(0)

在 C++ 中,枚举(enum)是一种用户定义的类型,用于将一组相关的常量组合在一起。枚举可以提高代码的可读性和可维护性。下面是对 C++ 枚举类型的详细讲解。 基本枚举 基本的枚举定义方法如下: enum Color { Red, Gre...

VSCode + clangd模式开发c++

菜鸟阅读 : 98赞(2)

使用vscode + clangd插件 + clangd(llvm) 安装 1、vscode 2、vscode的clangd插件 3、LLVM安装包,里面带clangd 生成compile_commands.json文件 cmake工程,直...

二维vector初始化

菜鸟阅读 : 319赞(2)

二维vector初始化 1.定义时就设置大小、初值 vector<vector<int> > v(2, vector<int>(4,1));//2行*4列,初始化为1 2.先定义vector,再设置大小、...

C++对象构造过程

菜鸟阅读 : 200赞(2)

一个C++对象固定的几个部分: 构造、析构、虚表指针(如果有虚函数)、类型信息 先说说一个C++对象整个的生成过程 构造父类 构造自身成员变量 构造自身 一个对象在构造之前会先分配内存,然后调用构造函数,编译器在构造函数之前又插入了为虚指针...