数据结构,泛型编程

  

一泛型编程的概念

  

泛型的定义主要有以下两种:
1。在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)
2。在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。
一些强类型编程语言支持泛型,其主要目的是加强类型安全及减少类转换的次数,但一些支持泛型的编程语言只能达到部分目的。
泛型编程是一种不考虑具体数据类型的编程方式,可以由下面的交换函数来进行了解

  
 <代码>空白交换(T&一个,T&b)
  {
  T T=;
  a=b;
  b=t;
  }
   
  

在这个例子中,交换泛型的写法中T的不是一个具体的数据类型,而是泛指任意的数据类型

  

二c++中的函数模板

  

一种特殊的函数可用不同的类型进行调用,看起来和普通的函数很相似,区别是类型可被参数化

  
 <代码> template
  无效的交换(T&一个,T&b)
  {
  T T=;
  a=b;
  b=t;
  }
   
  

函数模板的语法规则:
模板关键字用于声明开始进行泛型编程
typename关键字用于声明泛指类型
函数模板使用有自动类型推导使用和具体类型调用两种

  
 <代码> int=0;
  int b=1;
  交换(a, b);//自动推导
  
  浮动c=2;
  浮动d=3;
  Swap (c, d);//显示调用
   
  

三c++中的类模板

  

c++中的类模板以相同的方式处理不同的类型,在类声明前使用模板进行标识
& lt; typename T>用于说明类中使用的泛指类型T

  
 <代码>模板& lt; typename T>
  类的书
  {
  公众:
  T波(T, T b);
  }; 
  

类模板的应用
1。只能显示指定具体类型,无法自动推导
2。使用具体类型& lt; type>定义对象

  
 <代码> Book 

数据结构,泛型编程