c++ stl

模板函数

template<typename T>
template<class T>
template<class T1, class T2, class T3>
void MySwap(T&a,T&b){
    T temp=a;
    a=b;
    b=temp;
}

// 调用
// 自动类型推导:编译器根据传递的值进行自动类型推导
int a,b;
MySwap(a, b);

//显式指定类型
MySwap<int>(a, b);

普通函数可以进行自动类型转换

函数模板必须严格匹配类型

函数模板可以像普通函数那样被重载

c++编译器优先考虑普通函数

c++编译过程

index.cpp->预编译器->index.i->编译器->index.s(汇编文件)->汇编器->目标文件.obj/.o->链接器->可执行文件

模板函数使用原理剖析

程序会根据函数模板的调用情况生成相应的模板函数。

编译器并不是把函数模板编译成能够处理所有类型的模板函数

编译器会对函数模板进行两次编译,在声明的地方对模板代码本身进行编译,在调用的地方对参数替换后的代码进行编译

类模板

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值