C++中的模板(一)

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

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

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

cpp 复制代码
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以后,编译器检测到你传入的参数是什么类型,就对应生成这个类型的函数,然后再进行交换,是编译器代替你做了这个工作。这个模板在之后大量的代码操作中是非常实用的,以提高代码效率。

相关推荐
惊鸿一博16 分钟前
java_网络服务相关_gateway_nacos_feign区别联系
java·开发语言·gateway
Bruce_Liuxiaowei20 分钟前
深入理解PHP安全漏洞:文件包含与SSRF攻击全解析
开发语言·网络安全·php
成工小白21 分钟前
【C++ 】智能指针:内存管理的 “自动导航仪”
开发语言·c++·智能指针
sc写算法24 分钟前
基于nlohmann/json 实现 从C++对象转换成JSON数据格式
开发语言·c++·json
SunkingYang28 分钟前
C++中如何遍历map?
c++·stl·map·遍历·方法
Andrew_Xzw29 分钟前
数据结构与算法(快速基础C++版)
开发语言·数据结构·c++·python·深度学习·算法
库库的里昂30 分钟前
【C++从练气到飞升】03---构造函数和析构函数
开发语言·c++
momo卡31 分钟前
MinGW-w64的安装详细步骤(c_c++的编译器gcc、g++的windows版,win10、win11真实可用)
c语言·c++·windows
多多*2 小时前
LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考
linux·开发语言·redis·python·bootstrap·lua
Wish3D3 小时前
阿里云OSS 上传文件 Python版本
开发语言·python·阿里云