STL标准模板库
2020-04-27 11:31:51 5 举报
AI智能生成
史上最全最详细的C++标准模板库STL-思维导图知识树
作者其他创作
大纲/内容
Standard Template Library<br>标准模板库
<b>中心思想:将<font color="#c41230">数据容器(Containers)</font>和<font color="#c41230">算法(Algorithms)</font>分开独立设计,再利用<font color="#c41230">迭代器(Iterators)</font>将二者结合在一起。</b>
<b>实现技术:</b>以<b><font color="#c41230">模板(Template)技术</font></b>实现,是<b><font color="#c41230">泛型编程GP(Generic Programming)</font></b>的典范。
<b>意义作用:</b>实现了常用的数据结构和算法,并将<b><font color="#c41230">二者分离</font></b>,<b><font color="#c41230">耦合性(Coupling)</font></b>极低,<b><font color="#c41230">复用性(Reusability)</font></b>极高,<br>且<b><font color="#c41230">符合开放封闭原则(Open-Closed)</font></b>,即用户可以添加自己的组件。
六大组件
容器<br>Containers
<b><font color="#c41230">存东西。</font></b>class template实现。头文件<vector>、<list>、<map>等等。<br>
存储并管理同一种类型变量的数据结构,分为序列式容器和关联式容器两大类。<br>
算法<br>Algorithms
<b><font color="#c41230">解决问题。</font></b>function template实现。头文件<algorithm>。
具体的解决某一类问题的方法,避免后人重复造轮子。
迭代器<br>Iterators
<b><font color="#c41230">胶水。</font></b>class template实现。头文件<iterator>。
行为类似指针的对象,使用泛型指针实现,扮演容器和算法之间的胶合剂。
将operator++、operator->和operator*等指针习惯行为重载的class template。
仿函数<br>Functors
<b><font color="#c41230">满足不同用户具体算法需求。</font></b>class template实现。头文件<functional>。
又叫函数对象(Function Objects),类似函数指针,即行为类似函数的类对象,<br>重载了函数调用符operator( )的class template。<br>
STL提供的算法一般有两个版本,一种是常用默认的,一种是泛化的。泛化的使用<br>仿函数可以扩充算法功能,让算法能够处理不同的数据类型,包括用户自定义数据结构。
适配器<br>Adapters
<b><font color="#c41230">轴承、转换器。</font></b>class template实现。
用来修饰容器或仿函数或迭代器接口的工具,扩充其功能。
空间配置器<br>Allocators
<b><font color="#c41230">分配内存。</font></b>class template实现。头文件<memory>。
负责内存空间的配置和管理,采用类模板class template技术实现。
收藏
收藏
0 条评论
下一页