C++中的模板(一)

首先,我们做一个简单的假设:假如现在你有穿越回古代的机会,然而你在古代的身份是曹植的管家,这天曹植写了一首《洛神赋》,他命令你把这首诗广泛的传播出去,那么在当时的技术条件下,你只能先制作竹签,然后一个一个把字刻上去,但是只有一个人效率极其的慢,而且也不能量产;突然有一天,你寻找到了穿越的条件,于是,你立马穿越回去,打算将活字印刷术和造纸术这两门技术带回去,回到古代以后,你就利用这两门技术,立马成为了当时的惊世奇才。

在这个故事中提到的活字印刷术就是我们要讲到的模板。

下面来举一个函数模板的例子:

template<typename T>  //模板参数-类型
void Swip(T& x1,T& x2)
{
T temp=x1;
x1=x2;
x2=temp;}
int main(){
int a=0,b=1;
double c=1.1,d=2.2;
Swap(a,b);
Swap(c,d);
return 0;
}

注意:在此段代码中,template<typename T>是一个固定的函数模板的形式,需要记忆。在这个函数中,Swap(a,b)和Swap(c,d)并不是调用的同一个函数,而是两个不同的函数,是你将参数传递给Swap以后,编译器检测到你传入的参数是什么类型,就对应生成这个类型的函数,然后再进行交换,是编译器代替你做了这个工作。这个模板在之后大量的代码操作中是非常实用的,以提高代码效率。

相关推荐

  1. C++模板方法模式

    2024-07-10 11:10:05       8 阅读
  2. C++模板使用

    2024-07-10 11:10:05       39 阅读
  3. C++模板---下

    2024-07-10 11:10:05       15 阅读
  4. C++模板(二)

    2024-07-10 11:10:05       9 阅读
  5. 快速学习C++模板

    2024-07-10 11:10:05       38 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 11:10:05       4 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 11:10:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 11:10:05       4 阅读
  4. Python语言-面向对象

    2024-07-10 11:10:05       4 阅读

热门阅读

  1. 单片机与FPGA的关系及其在嵌入式系统中的应用

    2024-07-10 11:10:05       8 阅读
  2. Hadoop中的副本、校验和(数字指纹)、block

    2024-07-10 11:10:05       5 阅读
  3. Xshell 和宝塔有啥区别

    2024-07-10 11:10:05       11 阅读
  4. SD卡,laptop,启动ubtuntu

    2024-07-10 11:10:05       11 阅读
  5. 达梦数据库主备手动切换

    2024-07-10 11:10:05       10 阅读
  6. ffmpeg滤镜创建过程

    2024-07-10 11:10:05       10 阅读
  7. stm32使用单通道规则组ADC

    2024-07-10 11:10:05       11 阅读
  8. HTML 学习指南:从入门到精通

    2024-07-10 11:10:05       12 阅读
  9. 经导管二尖瓣修复系统市场全面解析与未来展望

    2024-07-10 11:10:05       11 阅读