本书是来自STL之父的大作,作者的观念是编程源于数学,没有好的数学基础,只能玩玩程序的小技巧,很难写出STL这样伟大的程序,书的英文名称叫做elements of programming, elements 其实就是事物背后的本质的意思,发人深省。
第一章: 基础
本章作者介绍了一个数学系统,理解这个系统才获取了看懂这本书的钥匙。
过程(Procedure): 改变对象状态的一组指令序列,通俗的来讲就是一个函数,比如比较相等不相等,析构赋值等对对象操作的函数都叫过程。
规范类型:相等检查,赋值,析构,默认构造,拷贝,全序判断,基础类型。这个和设计C++的class的概念不谋而合。
规范过程(Regular):就是保证输入输出的一致性的过程,理解这个概念要从它的反面了解,比如返回对象的指针就是一个非规范类型,因为相同的对象可能返回不同的指针,返回当前的时间,返回随机数。
函数过程(functional procedure):是在规范类型的基础上定义的规范过程,有多个参数和一个返回值,输入分成两大类,一类是数值的直接传递,一类是间接传递,比如引用指针。
类型函数:一个类型到另一个从属类型的映射,比如T到T*的映射。
下面介绍一些数学术语
F:过程;
Arity(F):过程的输入参数个数;
Codomain(F): 这个函数映射表明&#