Advertisement

C++ 高级编程技巧——迭代器

阅读量:
  • 开发与具体数据类型无关的软件 *
  • 抽取特定数据结构中的算法逻辑以形成通用解决方案 *
  • C++模板系统构成了泛型编程的核心架构 *

术语:概念

  • 用于分类具有特定功能的数据类别。
  • 设有两个不同的概念A与B,在满足以下条件时:若两者的需求数学上一致,则可定义称其中一个是另一个的子类。

术语:模型

  • 符合一个概念的数据类型称为该概念的模型。

用概念做模板参数名:

大量STL实现代码是以概念命名其模板参数的方式编写。
给概念起一个名字,并用这个名字作为模板参数名。
表示insertionSort这样一个函数模板的原型:

复制代码
 tempalte <class Sortable>  
    
 void insertionSort(Sortable a[], int n);  //用Sortable这样的概念作为参数

1. STL

STL的基本组件

存储结构(storage structure)
遍历工具(遍历工具)
操作函数(操作函数)
运算规则集(运算规则集)

迭代器是算法与容器之间的纽带:利用迭代器为算法提供参数,并通过迭代器间接访问容器而非直接使用容器作为算法的输入;

不仅仅将函数对象作为被调用的对象;
而是避免将函数所执行的具体运算视为算法的核心

全部评论 (0)

还没有任何评论哟~