C++ STL标准模板库简介

文章目录

  • 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进行处理,非常感谢!

上一篇 2021年4月1日
下一篇 2021年4月1日

相关推荐