-
深入探索C++内存模型(2)
构造函语意学是本书的第二章,这一章节主要针对构造函数在不同情况的底层实现细节进行的全面的讨论。阐述了在类对象(class object)的构造期间,编译器进行的额外操作的原理。针对默认构造函数(default constructor)和拷贝构造函数(copy constructor)分别展开了细致的讨论,引出了编译器 NRV 优化的概念,揭示了成员初始化列表的作用机理。
-
深入探索C++内存模型(1)
最近花时间读了一下《深入探索C++内存模型》,这本带我了解到了更底层的C++知识。
这本书从C++语言各种特性的实现机制上进行细致剖析,进而总结出对软件开发具有指导意义的经验和结论。这本书的目标群体是具有开发经验的中高级开发人员,其内容的专业性是不容质疑的。
从我的阅读感受上讲,它相对比那些一般的技术文档要耗时耗力。全书共三百多页,粗略地估算了一下,我却用了一个月的空余时间才读完。我会将读书笔记整理成博文,这样能够加深记忆,也方便以后查阅。
-
C++(Qt)和Python混合编程的一些经验之谈
在Launchy的开发中,我使用了Python作为Qt程序的插件开发语言,最近有朋友问我Qt和Python结合使用的一些细节。结合我之前踩坑的经历,C++(Qt)和Python的混合编程可以从几个方面进行考虑。
-
Tips on Linux Process and Subprocess
Here are some tips on Linux process and subprocess, such as orphan process, zombie process, process exit and close on exec flag.
-
每周算法:跳跃游戏
leetcode第55题,难度为medium。本题可以用的思路比较多,可行的方法有:回溯算法、动态规划、贪心算法。
-
fork和vfork的区别
fork和vfork都是用来创建子进程的系统调用函数,本文主要对比了二者的区别。
-
线程API总结
线程的使用在软件开发中是十分普遍的,本文总结了两种常用的线程API接口:POSIX线程和CPP11线程。
-
谈谈自己在开发launchy时的一些收获
在开发launchy时,我学到了很多开发相关的技巧,对于如何做好一款软件也有了更加全面的认识。
-
C++常用的时间接口
与时间相关的操作在开发中是十分常见的,本文总结了常用时间接口,并给出了示例代码。
-
数据结构 - 堆
在计算机科学中,堆是一种特殊的、基于树(tree)的、满足堆特性的数据结构。本文以堆数据结构作为切入点,介绍了与之相关的优先队列和堆排序。
-
常见排序算法总结
排序是计算机编程中很常见的操作,本文对常见的排序算法进行了总结,并针对每种算法给出了示例代码。