一、诞生
1、软件界一直希望建立可重复利用的东西
2、C++面向对象和泛型编程的思想,目的就是复用性的提升
3、大多数情况下,数据结构和算法都没有一套标准,导致被迫大量重复工作
4、为了能够建立数据结构和算法的一套标准,诞生了STL
二、STL基本概念
1、、standard template library(标准模板库)
2、广义分类:容器、算法、迭代器
3、容器和算法之间通过迭代器无缝链接
4、STL几乎所有代码都采用模板类或模板函数
三、STL六大组件
容器、算法、迭代器、仿函数、适配器、空间配置器
1、容器:各种数据结构,vector,list,deque,srt,map等用来存放数据
2、算法:各种常用算法,sort,find,copy,for_each
3、迭代器:扮演容器和算法之间的胶合剂
4、仿函数:行为类似函数,可作为算法的某种测量
5、适配器:一种用来修饰容器或仿函数或地带其接口的东西
6、空间适配器:负责空间的配置和管理
(一)、容器
将一些最广泛的数据结构实现出来。
1、常用数据结构:数组,链表,栈,队列,集合,映射
2、容器分类
(1)、序列式容器:强调值的排序,序列式容器中每个元素均有固定位置
(2)、关联式容器:二叉树结构,个元素之间没有严格物理上的顺序关系
(二)、算法
1、概念:有限步骤,解决数学或逻辑问题(Algorithms)
2、分类:质变算法、非质变算法
(1)、质变算法: