这里将SGI版本的STL
chapter one
1 STL主要包含六大组件:容器、算法、迭代器、仿函数、适配器(adapters)、配置器(allocators)。其中适配器是各种接口,配置器是负责空间配置与管理的。
2 STL代码里面真的体现了C++的美丽,各种功能都用上了!
3 迭代器是前闭后开区间
4 用括号直接产生临时对象,
5 仿函数就是重载括号运算符 为什么使用仿函数,还有一点,可以保存数据
6 空间适配器不只能分配内存,还能直接向硬盘读取
7 for_each :对容器里面的每个元素都调用一个函数
8 static成员在class内部直接初始化,因为它是类的成员,而不是对象的,不能在构造函数初始化——会造成多次初始化
9 size_t是通过sizeof返回的,可能是任何无符号整型,比如uint,ulong,ulonglong等,是由开发环境决定的,因此可移植性高。
ptrdiff_t是计算指针的距离,通过地址差除以类型大小得到与类型无关的距离。这两个都是在<cstddef>头文件中的
10 作用域解析符::放在前面,表示使用全局对象。
operator new 和new operator:都是用来分配内存的,operator new其实是函数,可重载,使用时要保持operator关键字。new operator就是常使用的new关键字。
11 P64 alloc是内部的内存分配类?在声明容器时需要开辟内存空间,不过通常采用默认的,不用写出来。
12 使用<new.h>中的placement new(operator new的重载版本),在已经分配的内存中创建新的对象。
可以查询的相关知识:SGI STL相关资料