【C++】模板如何使用

模板是c++的高级特性分为:

  • 函数模板。
  • 类模板。

c++标准模板库(STL) 

//函数模板一般格式
/*
template <类型形式参数表> 返回值 函数名(形式参数,...){

    //函数体
}
*/

// template 关键字
// <> 表示模板参数(两种)
//            1.类型参数(class / typedef)
//            2.非类型参数(一般为常数)

#include<iostream>
using namespace std;

template <class Type> 
Type max_us(Type x, Type y) {


	return x > y ? x : y;
}
int main() {
	
	int i = max_us(8, 9);

	cout << i << endl;
	return 0;
}

如果两数类型不一致,便会有歧义,编译器不能识别。例如:

//歧义
	//显示标识模板
	float k = max_us<float>(8.1, 3);

 需要添加显示标识符。

函数模板是一个“框架”,它不是真正可以编译生成代码的程序,而模板函数是把函数模板中的类型参数实例化后生成的函数,它和普通函数本质是相同的,可以生成可执行代码。

 数组模板使用:

//数组模板
template <class Type,int len>

Type max_arr(Type arr[len]) {

	Type ret = arr[0];
	for (int i = 1; i < len; i++)
	{
		ret = (arr[i] > ret ? arr[i] : ret);
	}
	return ret;
}
//数组模板使用
	int max_a = max_arr<int, 5>(a);

	
	cout << max_a << endl;

 重载模板使用:

//重载函数模板,实现字符、字符串比较
char* max_us(char* a, char* b) {

	
	if (strcmp(a,b))
	{
		return a;
	}
	else
	{
		return b;
	}
}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值