【C++成长之路】C++ STL(1)

前言

    先学习模板知识


一.什么是模板

模板是c++的一种特性,允许函数或者类(对象)通过泛型(generic types)的形式表现或者运行

模板可以使得函数或类在对应不同的类型(types)的时候正常工作,而无需为每一种类型分别写一份代码。

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。

二.模板有那几种类型

1:函数模板(function tempalte):使用泛型参数的函数(function with generic parameters)

2:类模板(class template):使用泛型参数的类(class with generic parameters)

       什么是函数模板?

函数模板是参数化的一族函数(a famliy of functions)

通过函数模板,可以实例化一系类函数,这些函数都给予同一套模板框架,但是作用在不通类型的参数上

     类模板

与函数模板类似,类也可以通过参数泛化,从而可以构建出一族不同的类实例(对象)

类模板实参可以是某一类型或常量(仅限int或enum)

三.模板的优缺点

(1)    优点 :

1)编写一个模板,就可以在实例化的时候 由一个模板解决不同类型数据所产生的相同问题;比如说排序问题,你可以给int 数据排序和cha类型数据排序,没有引入类模板,就需要编写两次排序函数,而引入类模板之后,就可以在实例化的时候,根据不同的数据类型实例化排序方法,做到一模板半多用的作用,即多态。

2)实现了代码的重用,节约了程序员时间和精力,这也是出现标准库的原因

(2)     缺点:

1)模板的数据类型只能在编译时才能被确定。因此,所有用基于模板算法的实现必须包含在整个设计的头文件中。

2)由于模板只是最近加入C++标准中,所以有些C++编译器还不支持模板,当使用这些编译器时编译含有模板的代码时就会发生不兼容问题。


 

总结

认知模板的两种类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值