PoEdu培训 STL班 第四课 STL的六大组件
文章类别: 培训笔记 0 评论

PoEdu培训 STL班 第四课 STL的六大组件

文章类别: 培训笔记 0 评论

泛型和STL

泛型程序设计

泛型程序的思想:

STL做了什么

它是泛型程序思想的体现

STL的六大组件

容器组件(Container)

标准容器共有如下几个:

数组(定长)的特点:

序列式容器:

总结:

在频繁的插入或删除, 不用在序列内部长距离跳转的时候, 应选择 list.
在vector的头部和中间插入或删除数据的时候效率低, 但是在尾部插入或删除效率很高.
deque在头部和尾部插入与删除效率都很高, 但是实际访问速度比vector低.

关联式容器

适配器

它是改变了容器(Container)或者迭代器(Iterators)或函数对象(Function Object)接口的组件.

它分为以下三大类:

算法(Algorithm)

提供了各种算法, 比如 find, sort....
#include <algorithm> 就可以使用STL中的算法.
可作用于任何一个STL的容器上.

迭代器(Iterator)

迭代器的作用是连接 容器(Containers)和算法(Algorithms).

迭代器可被称为一个 SMART POINT(小指针)
可以认为它是指针的一个类化.

函数对象(Function Object)

暂略...
一般来实现可扩展功能

分配器 (Allocator)

暂略...
一般来实现可扩展功能

六大组件的工作原理

Alt 工作原理
简而言之, 每个容器通过迭代器输入到算法中, 经过处理后, 算法在通过迭代器输出到容器内!

未完待续...

如有错误,请提出指正!谢谢.

回复