STL由于其设计之初就容纳了大量的程序员思维结晶,经过了无数次的讨论才形成了一个统一的标准,他同时拥有大量的内容和知识点,如果完全讲解内容,展开完完全全可以写出一本500页的书,本篇还是以数据结构为主,因此,这里只是略讲,而且还主要是略讲与数据结构相关的容器,不是深入讲解。
在这里引用本人的一位老师说的话:不学STL的C++是不完整的C++。
以下是STL中包含的几大内容,在学习中重点要学习前三点。
1.容器(Container)
是一种数据结构,也是本章节提的重点,如list(链表),vector(向量数组),stack(栈),队列(queue) ,以模板类的方法提供,为了访问容器中的数据,可以使用由容器类输出的迭代器。
2. 迭代器(Iterator)
是一种特殊的指针,它提供了访问容器中对象的方法,在程序设计中,它扮演了容器和算法之间的胶合剂,利用迭代器可以快速而安全的对容器内容进行操作,或是进行算法模板的使用。
3. 算法(Algorithm)
(部分书籍称为泛型算法,generic algorithms),是一类常用的算法模板,既可以对容器进行操作,同时其开放性也让算法类本身可以针对数组或者是自定义结构体等结构进行直接的操作。
4. *仿函数(Function object)(又称为函数对象,function object)
是一种行为类似函数,这样讲可能有些抽象,我们可以理解为一种高级的,重载了()操作符的结构体与类。
5.*迭代适配器(Iterator Adaptor)
是一种用来修饰容器或者仿函数的接口,它使得得带适配器使算法能够以逆向模式,安插模式进行工作,甚至还可以与流配合,它对容器起到非常大的辅助作用,同时他还将迭代器进行了更高级别的抽象。
6. *空间配制器(allocator)
是负责空间的配置与管理,重点就是对容器的空间申请和空间释放进行管理,你可以理解为C的malloc和free函数,C++的new和delete关键字。