文章目录
- 1. 什么是STL/li>
- 2. STL的优势
- 3. STL版本/li>
- 4. STL的六大组件
- 5. 学习建议
- 6. 为什么需要迭代器/li>
- 7. 自己实现迭代器iterator
- 8. STL中的5种迭代器
- 9. STL中的iterator类
- 10. 序列容器对比
- 11. 容器适配器对比
- 12. 关联容器对比
C++ STL标准库系列文章:
[STL] 1.简介
[STL] 2.序列容器 固定数组array(C++ 11)
[STL] 3.序列容器 动态数组vector
[STL] 4.序列容器 双端队列deque
[STL] 5.序列容器 双向链表list
[STL] 6.序列容器 单向链表forward_list(C++ 11)
[STL] 7.适配器简介
[STL] 8.容器适配器 栈stack
[STL] 9.容器适配器 队列queue
[STL] 10.容器适配器 优先队列priority_queue
[STL] 11.关联容器 集合set
[STL] 12.关联容器 映射map
[STL] 13.关联容器 多重集合multiset
[STL] 14.关联容器 多重映射multimap
[STL] 15.关联容器 无序集合unordered_set(C++ 11)
[STL] 16.关联容器 无序集合unordered_map(C++ 11)
[STL] 17.仿函数functor与函数对象
[STL] 18.预定义函数对象、仿函数适配器
[STL] 19.算法algorithm
[STL] 20.迭代器适配器
[STL] 21.空间配置器allocator
1. 什么是STL/h1>
标准模板库 – 维基百科,自由的百科全书 (wikipedia.org)
标准模板库(英文:Standard Template Library,缩写:STL),是一个C++软件库,大量影响了C++标准程序库但并非是其的一部分。其中包含4个组件,分别为算法、容器、函数、迭代器。[1]
模板是C++程序设计语言中的一个重要特征,而标准模板库正是基于此特征。标准模板库使得C++编程语言在有了同Java一样强大的类库的同时,保有了更大的可扩展性。
2. STL的优势
- 功能强大、代码精致
STL由惠普实验室的无数大牛们开发,设计精巧,功能强大,集成了优秀的算法。
- 高可重用性
ST广泛使用模板泛型编程,代码具有高度的复用性。
- 高性能、工业强度
ST提供的算法具有工业强度,高性能,用它可开发出性能高效的应用程序。
- 开源跨平台
STL跨平台,而且开源,开发者可以很容易借鉴与扩展。
3. STL版本/h1>
HP STL
HP STL是Alexandar Stepanov在惠普Palo Alto实验室工作时,与Meng Lee合作完成的。HP STL是C++ STL的第一个实现版本,而且是开放源码。其它版本的C++ STL一般是以HP STL为蓝本实现出来的。
SGI STL
由Silicon Graphics Computer Systems公司参照HP STL实现,主要设计者仍然是STL之父Alexandar Stepanov,被Linux的C++编译器GCC所采用。SGI STL是开源软件,源码可读性甚高。
STLport
为了使SGI STL的基本代码都适用于VC++和C++ Builder等多种编译器,俄国人Boris Fomitchev建立了一个free项目来开发STLport,此版本STL是开放源码的。
P.J.Plauger STL
由P.J.Plauger参照HP STL实现出来,被Visual C++编译器所采用,但不是开源的。
Rouge Wave STL
由Rouge Wave公司参照HP STL实现,用于Borland C++编译器中,这个版本的STL也不是开源的。
4. STL的六大组件
迭代器(iterator)是指针的抽象,它允许程序员以相同的方式处理不同的数据结构(容器)。
迭代器支持的一些基本操作:
- :迭代器赋值
- :比较迭代器的相等性
- :比较迭代器的不等性
- :迭代器向后移动
- :迭代器向前移动
- :解引用,返回迭代器指向的元素
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!