C++基础——拷贝构造函数,析构函数,堆,栈,内存管理
cpp的堆和栈
栈(stack) 和 堆(heap)
栈
- 由系统自动管理,以执行函数为单位
- 空间大小编译时确定(参数+局部变量)
如果你做反汇编,你可以看到栈的大小是通过编译器写在信息里面,这个时候的内存都是row memory。row memory是上一次内存使用过后留下的01数据,就是没有初始化的。 - 函数执行时,系统自动分配一个stack
- 函数执行结束,系统立即回收stack
算法原理和实践(C++)
Reorder List
Given a linked list and a value x, write a function to reorder this list such that all nodes less than x come before the nodes greater than or equal to x.
可以使用dummy node来减少判断header是否为空的边界条件。
C++的继承机制图解
最近一直想用一张图去总结C++的继承机制。但是很快就发现,C++的继承机制比自己想象中要复杂得多,根本不可能用一张图就是解释得清楚。不过万事并不是一定要得到结果才算成功,想要总结的念头本身就让自己无形中有了对继承机制有了更深的理解。也尝试着用一张图去解释单继承中public,protected, private继承的特点,以及父类和子类中虚函数,构造函数和析构函数的关系。
徒步小记
地点: Bukit Panjang, Singapore. 飘渺的云丝,游离于苍穹。在国内的时候似乎已经没法看到这样的蓝天白云了。
独行侠
去学校的路上,我听到了鸟吟和虫鸣,清脆而悠远。
这是一条每天都要走过的路,但是我从来没有听到过这些富有生机的声音,甚至连马路边嘈杂的引擎声都不曾注意。它们肯定一直存在,只是我没有注意罢了。
今天,我却听到了,热闹,和谐,却又不失静谧。多么美妙的合奏。
于是,我开始注意起四周。我看到了地上散落的碎叶,看到了雨后留下的清澈的水洼,看到一只灰色的小蝴蝶在草丛中焦急的飞着,像是在寻找它中意的花朵。我看到骄阳穿射过树荫留下的无数亮斑,宽广的枝桠在暖风中徐徐摇曳,也带动这些太阳的缩影,它们,闪烁着,仿佛一串串金色的风铃。我还看到了城市里湍急的河流,这河水并不清澈,甚至是污浊,但这水声却清澈动听。
我还看到车站上额头大滴大滴的淌着汗珠的路人在焦急地看着手表,看到十字路口摩托车上的父亲在告诫身后的孩子要注意安全,看到辛勤的基建工人尽责地站在翻修路段附近提醒着来往的车辆。更看到这繁忙的马路上,川流不息的车辆有条不紊地奔向远方。
我在这条每天必经道路上,却看到和听到了很多从未发现的东西。
学会忘记
今天实习一直折腾到了晚上八点,只是回过头看看,发现也没做出什么事情。这通常便是调试阶段的感觉。只是这次,感触颇深,因为很多时间都浪费在一个习惯性地思维上。
在sublime Text 3 上执行C++程序(Mac)
Sublime是一款非常不错的代码编辑器,对于我而言,sublime最大的好处就是C++代码和自己的读书笔记能在一个界面下进行编写,非常方便。但是sublime默认的C++编译方式有两个很大的缺点,一个是无法编译多个源文件,另一个就是无法在程序运行之后输入参数(也就是说,我们在sublime中无法使用std::cin).
一月的落叶
一月的落叶