数据结构--泛型编程
admin
2023-07-26 07:40:10
0

一 泛型编程的概念

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

   void Swap(T& a,T& b)
     {
         T t=a;
         a=b;
         b=t;
     }

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

二 C++中的函数模板

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

  template
   void Swap(T& a,T& b)
     {
         T t=a;
         a=b;
         b=t;
     }

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

int a=0;
int b=1;
Swap(a,b);//自动推导

float c=2;
float d=3;
Swap(c,d);//显示调用

三 C++中的类模板

C++中的类模板以相同的方式处理不同的类型,在类声明前使用template进行标识
用于说明类中使用的泛指类型T

template 
class Book
{
    public:
        T Bo(T a,T b);
};

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

Bookbook1;
Bookbook2;
Bookbook3;

相关内容

热门资讯

东方雨虹旗下孚达科技落地华为全... 近日,东方雨虹旗下孚达科技高性能B1级挤塑板(XPS)成功落地华为贵安云上屯数据中心项目,凭借高标准...
沈炜的禅意与煎熬 文 | 巨潮WAVE,作者|老鱼儿,编辑|杨旭然 师出段永平的vivo创始人沈炜,和他高调的老师有...
双一流高校本科将扩招超10万人 作者 | 第一财经 林靖国务院日前印发《教育发展“十五五”规划》(以下简称《规划》),对“十五五”时...
探访外骨骼助力器消费现状 央视网消息:外骨骼助力器近年来在消费市场悄然兴起,很多人说,戴上它就能健步如飞、穿上它就能“保护膝盖...
西安外国语大学:严禁单人或少数... 澎湃新闻记者 钟煜豪“学校各类自习教室属全校公共学习资源,遵循共享使用、随到随用管理原则。近期学校多...
老外给马斯克算了笔账:地球人减... 马斯克可能也没想到,好好的spaceX评论区,突然被一群“劝人减重”的网友攻陷了。 按理说,大家一般...
2026山东网络视听大会下周启... 齐鲁晚报·齐鲁壹点记者 朱若彤 6月29日,山东省人民政府新闻办公室举行新闻发布会,邀请省委宣传部、...
浦东保密|“翻墙”让泄密如影随... 机关、单位工作人员 违规使用“翻墙”软件访问境外网站 不仅触犯法律红线 更打开了失泄密的“潘多拉魔盒...
马斯克:SpaceX计划今年每... 当地时间6月28日,马斯克在其社交媒体平台X上发文称,旗下最新一代大语言模型Grok 4.5已正式在...
从“样板”到“普惠”:华为极简... 随着AI技术应用的快速落地,各行各业正加速从传统IT基础设施向全域AI数据基础设施转型,而新型数据中...