泛型程序设计

    技术2024-01-16  100

    泛型程序设计的基本概念

    编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础

    术语:概念

    用来界定具备一定功能的数据类型。例如: 将“可以比大小的所有数据类型(有比较运算符)”这一概 念记为Comparable; 将“具有公有的复制构造函数并可以用‘=’赋值的数据类型”这一概念记为Assignable; 将“可以比大小、具有公有的复制构造函数并可以用‘=’赋值的所有数据类型”这个概念记作Sortable;对于两个不同的概念A和B,如果概念A所需求的所有功能也是概念B所需求的功能,那么就说概念B是概念A的子概念。例如: Sortable既是Comparable的子概念,也是Assignable的子概念

    术语:模型

    模型(model):符合一个概念的数据类型称为该概念的模型,例如: int型是Comparable概念的模型。 静态数组类型不是Assignable概念的模型(无法用“=”给整个静态数组赋值)(括号中的内容本人不太懂,有大神能解疑吗)

    用概念做模板参数名

    很多STL的实现代码就是使用概念来命名模板参数的。 为概念赋予一个名称,并使用该名称作为模板参数名。 例如

    表示insertionSort这样一个函数模板的原型:

    template <class Sortable> void insertionSort(Sortable a[], int n);
    Processed: 0.013, SQL: 9