数据结构
相互之间存在一种或多种特定关系的数据元素的集合。研究数据结构,关心的是数据对象的描述以及相关操作函数的实现。
数据
是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。如整型、浮点型等数值类型,以及声音、图像等非数值类型。
数据元素
是组成数据的、具有一定意义的基本单位,在计算机中通常作为整体处理。也被称作记录。
5章:实现26:尽可能延后变量定义式的出现时间对于循环存在的情况:
做法A:定义于循环外
1 | Widget w; |
做法B:定义于循环内
1 | for(int i = 0; i < n; i++) |
这两种写法的成本如下:
做法A:1个构造函数 + 1个析构函数 + n个赋值操作
做法B:n个构造函数 + n个析构函数
做法A会造成名称w的作用域比做法B更大
除非(1)你知道赋值成本比构造 + 析构成本低,(2)你正在处理代码中效率高度敏感的部分,否则你应该使用做法B。
1章:让自己习惯C++01:视C++为一个语言联邦C++视为由4个次语言组成的联邦:C:没有模板、没有异常、没有重载…Object-Oriented C++:类、封装、继承、多态、虚函数、动态绑定等等;Template C++:泛型编程部分;STL:是一个Template程序库,容器、迭代器、算法以及函数对象。从某个此语言切换到另一个时,高效编程守则可能会发生变化。比如,C-like类型(内置类型)pass by value更好;对于Object-Oriented C++而言,pass by reference to-const更好;再切换到STL,由于迭代器和函数对象都是在C指针之上塑造出来的,pass by value守则再次适用。