C++基于googletest做单元测试 程序员

C++基于 googletest 做单元测试

一、安装 googletest 单测对程序员而言是提升代码质量最重要、最有效的一个措施,对程序员来说,要想写一个好的程序,那么必定少不了好的单元测试。 googletest(gtest) 是 google 开发...
阅读全文
关于vector的扩容机制 C/C++

关于 vector 的扩容机制

往 vector 中添加元素时,如果空间不够将会导致扩容。 vector 有两个属性:size 和 capacity 。 size 表示已经使用的数据容量,capacity 表示数组的实际容量,包含已使用的和未使用的。 ...
阅读全文
STL中的迭代器失效 C/C++

STL 中的迭代器失效

一、迭代器失效 向容器添加或者删除元素可能会导致指向容器的指针、引用或者迭代器失效。使用已经失效的指针、引用或者迭代器将会导致程序出现异常,编码过程中一定要时刻注意迭代器失效的场景。 例如,以 vect...
阅读全文
磁盘的基本知识:磁道、柱面和扇区 程序员

磁盘的基本知识:磁道、柱面和扇区

一、磁盘的基本元素 磁盘由多个盘片组成,每个盘片的基本结构为: 各标识含义: A 是磁道,多个磁盘的同一个磁道重叠起来叫做柱面,它包含了很多个扇区。 B 是几何上的扇区,只做标示,此处无特殊含义。 C 是扇...
阅读全文
C++中的友元和运算符重载 C/C++

C++中的友元和运算符重载

一、友元 友元可以允许其他类或者函数访问自己的非共有成员,如果类想把它的函数作为友元,只需要增加一条以 friend 开头的函数声明即可。 1.1 添加外部函数作为友元 以下一个学生类,类中保存了学生的年...
阅读全文
数据结构之B树 数据结构和算法

数据结构之 B 树

一、 B 树的基本概念 B 树是一种多叉树,被广泛应用于数据库索引中。它也是一种特殊的搜索树,和搜索树最大的不同在于它的每个节点都包含了 n 个关键字和 n+1 个指向子节点的指针。它的表现形式为: B 树的特点: ...
阅读全文