随笔分类 - C++基础知识
摘要:定义 可重入(reentrant)的定义1: 在单个线程中先后执行一段代码是安全的,所谓安全,即一段代码执行的时候,其不会因为进程的signal打断而产生不一致的结果(以及产生的副作用,如更改的全局变量)。signal中断如下: 可重入(reentrant)的定义2:但是,如果参考POSIX的定义,
阅读全文
摘要:内存泄漏 虽然解决了core dump,但是另外一个问题又浮出了水面,就是高并发测试时,会出现内存泄漏,大概一个小时500M的样子。 valgrind的缺点 出现内存泄漏或者内存问题,大家第一时间都会想到valgrind。valgrind是一款非常优秀的软件,不需要重新编译程序就能够直接测试。功能也
阅读全文
摘要:【C基础知识】一个避免手写所有文件依赖关系的Makefile模板 背景 构建可执行程序的时候有很多种方法,包括CMake, make等工具。虽然makefile有比较固定的语法规范,但是很多人写makefile的习惯不太一样。有些人写makefile要把某个目录下的所有文件都写到makefile里,
阅读全文
摘要:Inside the c++ Object Model 1. 关于对象的继承 表格驱动模型 虚拟多重继承 struct是否可以在一些时候替代class?在C++里,否 string是一种OB类型,而非OO类型,其特点是速度更快,在编译的时候已经解析完毕 子类赋值给基类造成的切割 2. 构造函数语义学
阅读全文
摘要:Effective C++ 1. 知道C++为一个语言的联邦而非单种语言 2. 使用const、enum和inline替代宏 3. 尽量使用const 4. 确定对象已被初始化 (编译器不保证变量被初始化,跨平台和编译器的问题) 5. 了解C++默认编译和调用的函数(并取消之) 6. 明确取消不想由
阅读全文
摘要:BST 的查询、插入、删除操作 二叉树定义 插入操作 查询操作 删除操作 遍历方法: 测试 参考: 任何一本算法与数据结构相关的书
阅读全文
摘要:【密码学】DES算法和AES算法(Rijndael算法)数学原理及实现 背景 DES,Data Encryption Standard, 数据加密标准。 尽管DES是一个很宽泛的名字,但是它指代的只是一个具体的标准。它在1970年代被美国NBS接受为信息处理的标准。 与之对应,DES的加解密算法称为
阅读全文
摘要:时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho面前有N个小球排成了一排。每个小球可以被染成M种颜色之一。 为了增强视觉效果,小Ho希望不存在连续K个或者K个以上的小球颜色一样。 你能帮小Ho计算出一共有多少种不同的染色方法么? 例如N=4, M=2, K=3,则
阅读全文
摘要:描述 小Hi的公司包括CEO在内一共有N名员工。这N名员工的上下级关系形成树形结构,CEO处于树根,普通员工处于叶子节点。 现在公司希望管理扁平化,要求树形结构中的层级不超过L层。此外,假设A是B的直接上级,那么B管理的下属数目必须少于A管理的下属数目。 请你判断CEO至少要管理多少名下属? 例如N
阅读全文
摘要:多线程编程中会用到两个头文件,thread和pthread。 pthread早于thread出现,本来是在类POSIX系统中用来多线程编程的,Windows原生不支持。C++11之后, 只要Windows、Linux支持C++11都可以使用原生的thread头文件, 这是C++标准委员会支持的原生语
阅读全文