小结
?标准模板库(Standard Template Libarary, STL)是为许多标准数据结构和算法提供泛型程序设计的C++库。
?容器主要有两类:顺序容器和关联容器。顺序容器(vector、list和deque)是一系列元素的有序集合。关联容器(set、multiset、map和multimap)包含查找元素的键。
?容器适配器类修改了现有的容器,它基于现有的实现产生各种公有行为。STL提供了3种容器适配器,分别是stack、queue和priority_queue。
?迭代器可以看作是一种增强的指针类型。迭代器有5种类型,即输入、输出、前向、双向和随机访问。并不是所有类型的迭代器都可以作用于给定的容器类,例如,随机访问迭代器可以用于vector但不能用于map。
?STL算法库包含4类算法,分别是排序算法、不可变序算法、变序性算法和数值算法。这些算法通常使用迭代器访问由给定类型进行实例化的容器。在效率方面,这些算法可以与一些专用代码相媲美。
?使用函数对象对进一步使用STL库很有帮助。除了可以在内置类型上定义函数对象以外,function库中也定义了许多函数对象。函数对象是定义了operator()的类,其中的函数都是内联函数,并能编译生成更高效的对象代码。
?在扩展STL的时候,应该按照STL风格编写代码。这意味着应该使用令程序执行更高效的最弱迭代器类编写算法,也意味着代码应该作用于由迭代区间指定的参数。
图书导读







