摘要:
一、配接器 《Design Patterns》一书提到23个最普及的设计模式,其中对adapter样式的定义如下:将一个class的接口转换为另一个class 的接口,使原本因接口不兼容而不能合作的classes,可以一起运作。 1. 配接器概观与分类 STL 所提供的各种配接器中,改变仿函数接口者 阅读全文
摘要:
一、仿函数(也叫函数对象)概观 仿函数的作用主要在哪里?从第6章可以看出,STL所提供的各种算法,往往有两个版本,其中一个版本表现出最常用(或最直观)的某种运算,第二个版本则表现出最泛化的演算流程,允许用户“以template参数来指定所要采行的策略”。以sort()为例,其第一版本是以operat 阅读全文
摘要:
一、算法概观 以有限的步骤,解决逻辑或数学上的问题,这一专门科目我们称为算法。特定的算法往往搭配特定的数据结构,例如binary search tree(二叉搜索树)和 RB-tree 便是为了解决查找问题而发展出来的特殊数据结构。几乎可以说,特定的数据结构是为了实现某种特定的算法。本章所讨论的,是 阅读全文
摘要:
在 红黑树详解 文章中,二叉搜索树具有对数平均时间的表现是构造在这样的假设下的:输入数据有足够的随机性。 本篇介绍的hashtable(散列表)的数据结构,在插入、删除、搜寻等操作上也具有“常数平均时间”的表现,而且这种表现是以统计数据为基础,不需仰赖输入元素的随机性。 1. hashtable 概 阅读全文
摘要:
一、关联式容器 标准的STL关联式容器分为set(集合)/map(映射表)两大类,以及这两大类的衍生体multiset(多键集合)和 multimap(多键映射表)。这些容器的底层机制均以RB-tree(红黑树)完成。RB-tree也是一个独立容器,但并不开放给外界使用。 此外,SGI STL 还提 阅读全文