发布了文章2019-11-16
思路 使用一个idx指明当前子串的开始位置 {代码...} 优化 提取有用的条件分支 {代码...}
发布了文章2019-10-13
An object of a derived class is a kind of the base class. Therefore the conversion from a derived class pointer to a base class pointer is perfectly safe, and happens all the time. For example, if I am pointing at a car, I am in fact pointing at a...
发布了文章2019-10-11
可以使用结构体来选择内存的一部分,这里我们将int64_t的8个字节分成两个部分,前4个字节为0x0,后四个字节为0xFFFFFFFF,然后我们打印前面的四个字节(即 a),看结果怎么样就可以获得处理器是大端机还是小端机了。
发布了文章2019-10-09
错误示范 {代码...} 编译报错,foo/bar都包含不完整的类型 {代码...} 解决方案 用指针来指向需要包含的对象,使用前向声明来表示包含的那个类已存在 指针的大小是确定的,因此类的大小也就可以确定 避免了A需要B需要A这种循环引用的问题 {代码...} 参考: [链接]
发布了文章2019-10-07
libuv使用基于事件的异步回调的方式来处理多个IO事件 因此使用一个线程就可以监控大量的文件(socket等文件类型)这种基于回调的编程风格在代码的可读性上比较差,这里梳理一下流程 创建TCP服务端的三个步骤: 创建TCP套接字, 绑定IP&&PORT,LISTEN 然后运行uv_ru...
发布了文章2019-10-07
注:这里只是为了探寻C++的内部机制,实践中解引用空指针是绝不应该出现的如果希望只通过类名调用成员函数,请声明静态成员函数 {代码...} 结论 对于不涉及内部成员的函数调用(1,4),C++都把(nullptr)->操作直接翻译成了对于函数的调用. 而对于(2 this指针,3 vptr)则...
发布了文章2019-05-11
现代编程语言对于值传递与引用传递的支持程度是比较不同的 首先介绍值传递与引用传递的概念 值传递 将变量a传递到其他的函数并对其更改,不能影响a的值 引用传递 在其他的作用域对传入的变量a的更改可以影响a的值 Note: 在这里的值的概念,对于原始类型,指的就是...
发布了文章2019-03-28
Java中的栈 Java中的Stack是早期的遗留类,Sun/Oracle已经不推荐使用,现在只是为了兼容遗留代码而保留. 遗留实现 如下面的代码所示,java.util.Stack中的实现是基于动态数组实现的,而Vector同样是一个被废弃的类。 个人看来,这个实现有两个问题 基于Vector,需要同...
发布了文章2019-03-08
GCC 5.0以后的版本采用了__SSO__(短字符串优化)的策略替换了原本的__COW__优化,我写了几段代码来验证了一下新的实现的一些细节。
发布了文章2019-03-01
这样的设计导致很多时候我们对字符串的处理十分的麻烦与危险,像我之前写的哈夫曼编码解码的时候,为了盛放解码后的结果,我不得不创建一个非常大的静态数组或者动态分配内存来放置函数产生的长度不定的字符串。
发布了文章2018-08-19
BogoSort是一个比较少见的算法,一般的算法书不会涉及这个算法,因为这个算法的思想很奇特: {代码...} 代码实现:bogosort.py {代码...}
发布了文章2018-08-15
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报...
发布了文章2018-08-15
你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组,计算你在不触动警报...