此系列博客,图片文字观点均是来自侯捷老师讲义课程,仅作为学习用途。
1、源代码之分布
源码之前,了无秘密。标准库是指标准接口,但是具体实现可能会有细微不同。
VS2015的目录下include目录下:里面含有标准库的源码。
DEV-C++的源码也是在其目录下的include中。
2、面向对象编程OPP和泛型编程GP
标准库其实并不是在面向对象的思想下编写的,面向对象一般是有各种类,类与类之间有继承关系。但是标准库是在泛型编程的思想编写的。
OOP是将datas(数据)和method(操作)放在一起。GP却是将datas(数据)和method(操作)分开。
算法调用迭代器,迭代器访问容器元素。
采用GP的优点:容器Containers和算法Algorithms可以相互不影响,各自开发,中间使用Iterator沟通即可。算法通过Iterator取用Container。
那为什么有的容器包含sort函数有的不包含呢?首先不包含sort函数的容器,也就是说,这些自身不含sort函数的容器,使用的是全局的sort函数进行排序,这些容器也就是采用的泛型编程的思想。全局的sort函数的实现依赖于一种随机访问迭代器的操作。那些含有自己的排序函数的容器并不支持这种迭代器,所以这些容器会有自己的sort函数。查看了C++目前涉及的容器,只有list含有自己的sort函数,其余的如果要排序均要使用标准库的sort函数。