C++之初阶模板

个人主页:救赎小恶魔

欢迎大家来到小恶魔频道

好久不见,甚是想念

今天我们要深入讲述C++内存管理

目录

引言:

模板

  1. 泛型编程

2. 模板函数

2.1函数模板的原理 

2.2模板函数的实例化

2.3函数模板的匹配 

3.类模板

STL

STL 的主要组成部分

STL 的优点

使用 STL 的注意事项


引言:

从这一章开始,我们将正式认识C++的一些模板,这也就是C++比C语言的进阶之处

废话不多说,开始讲解 。

模板

  1. 泛型编程

void Swap(int& left, int& right)
{
 int temp = left;
 left = right;
 right = temp;
}
 
void Swap(double& left, double& right)
{
 double temp = left;
 left = right;
 right = temp;
}
 
void Swap(char& left, char& right)
{
 char temp = left;
 left = right;
 right = temp;
}
 
......

使用函数重载虽然可以实现,但是有一下几个不好的地方

  1. 重载的函数仅仅只是类型不同,代码的复用率比较低,只要有新类型出现时,就需要增加对应的函数
  2. 码的可维护性比较低,一个出错可能所有的重载均出错

那能否告诉编译器一个模子,让编译器根据不同的类型利用该模子来生成代码呢?

答案是可以的

这里就需要引进一个泛型编程了

C++的泛型编程是一种编程范式,它允许程序员编写与类型无关的代码,这些代码可以在多种数据类型上工作,而无需为每个数据类型都编写单独的函数或类。这种特性主要通过模板(templates)来实现。

模板是泛型编程的核心。模板可以是函数模板(function templates)类模板(class templates)。

2. 模板函数

模板函数的定义:

模板函数使用template关键字来声明类型参数。类型参数通常被包含在尖括号<>中,并且用某种标识符(如Ttypename Type等)来表示。

其基本结构是:

template <typename
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值