摘要:
类代码 代码用到两个类,没什么特殊之处,主要是C++代码类还是很重要的知识点,内存管理肯定要涉及到,而不是仅仅的基本数据类型。 基类Person: #include <memory> //allocator类 #include <string> #include <new> //placement 阅读全文
摘要:
简介 A standard container automatically sorting its contents. 模板参数: _Tp – Type of element. _Sequence – Type of underlying sequence, defaults to vector<_ 阅读全文
摘要:
break 与 continue 在循环语句中,break只能跳出一层循环,如果外边还有一层或者该循环代码后还有代码的话只break一下后续代码还会执行,这是你想要的效果吗??? 循环语句中continue会跳过本次循环,但是去执行下一次循环,你确定自己的目的是这样吗??? switch 语句中,d 阅读全文
摘要:
递归存在的问题 递归存在两个问题:堆栈溢出,重复计算。 堆栈溢出的解决办法 限制递归深度 改用非递归实现 重复计算解决办法 备忘录 简单说就是在递归函数外面定义一个容器类型变量,保存已完成计算的值,递归计算时先考虑取“备忘录”中的值,若备忘录中没有再计算。 考虑是否可以用DP解决 递归算法的使用场景 阅读全文
摘要:
什么是字节对齐 在结构体中,编译器为结构的每个成员按其自然边界(alignment)分配空间。各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同。 为了使CPU能够对变量进行快速的访问,变量的起始地址应该具有某些特性,即所谓的“对齐”,比如4字节的int型,其起始地址 阅读全文
摘要:
父进程、子进程 在unix/linux系统中,大多情况下,子进程是通过父进程fork创建的。(系统调用fork,是一个比较有意思系统调用,它调用一次,返回两个值,失败返回-1,成功时在子进程返回0,父进程返回所创建子进程的pid。) 子进程创建后,子进程的结束和父进程的运行是一个异步过程,也就是说父 阅读全文
摘要:
背景 当我们使用某个有许多选项的复杂命令时,经常需要借助于man命令,man命令的解释非常好,但是它太细节了短时间内不好理解文档的内容。help命令同样不够简洁。whatis命令只会告诉我们所查询命令的作用,但从来不解释各选项的用法。 现在,有一个交互式的备忘录应用程序cheat,它将在其余的命令中 阅读全文
摘要:
下面的文章解释的足够好: mutable 阅读全文
摘要:
需求 单元测试之类的场景,每个.cc文件就是一个完整的单元测试代码。因此,多个单元测试各自需要编译。即,每个.cc文件都需要编译成可执行文件。 实现 比如,如下的目录结构 ├── a.cc ├── b.cc ├── c.cc ├── CMakeLists.txt └── Makefile 此时,将每 阅读全文
摘要:
gdb7.0以下版本不支持直接p vec这样的方式打印容器,如果实在需要打印可以根据容器的成员变量的值去打印,但是这样并不方便。 网上有不少博客介绍了如何用gdb 打印容器,比如这一篇(还顺带给了个简单的示例): 使用linux的GDB打印STL(vector,map,set............ 阅读全文