cc36a_demo-txwtech-c++_CppPrimer_函数模板

news/2025/1/11 21:50:53/

//cc36a_demo-txwtech-c++_CppPrimer_函数模板
//函数模板-》实例化-》函数
//模板形参,T就是形参
//template <typename T> //typename与class写法都可以-建议用这个,避免与类的class混淆
//template <class T>,这个<class T>与c++类的class没有关系
//调用什么类型-函数模板自动匹配函数的类型,自动变成相应类型

//3.顺序队列  //内部是数组--类模板
//4.链式队列   //内部是链表--类模板

//cc36a_demo-txwtech-c++_CppPrimer_函数模板
//函数模板-》实例化-》函数
//模板形参,T就是形参
//template <typename T> //typename与class写法都可以-建议用这个,避免与类的class混淆
//template <class T>,这个<class T>与c++类的class没有关系
//调用什么类型-函数模板自动匹配函数的类型,自动变成相应类型//3.顺序队列  //内部是数组--类模板
//4.链式队列   //内部是链表--类模板
#include <iostream>
#include <string>
#include <fstream> //文件流
#include <sstream>//字符串流using namespace std;
//int compare(const double &v1,const double &v2)
//{
//	if (v1 < v2) return -1;
//	if (v1 > v2) return 1;
//	return 0;
//}
//int compare(const string &v1, const string &v2)
//{
//	if (v1 < v2) return -1;
//	if (v1 > v2) return 1;
//	return 0;
//}//用函数模板来写//函数模板例子1
template <typename TT>//TT代表任意一种类型
int compare(const TT &v1, const TT &v2) //函数模板自动匹配函数的类型
{if (v1 < v2) return -1;if (v1 > v2) return 1;return 0;
}
//函数模板例子2
template <class T>
T absVal(T val)
{return val > 0 ? val : -val;
}
//函数模板例子3
template <typename T1, typename T2>
T1& print(T1& s,T2 val)
{s << val;return s;
}
//函数模板例子4
template <class T>
//严重性	代码	说明	项目	文件	行	禁止显示状态
//错误	C2440	“return” : 无法从“const T”转换为“T &”	cc36a_demo	c : \users\tt2018\documents\visual studio 2017\projects\cc36a_demo\cc36a_demo\cc36a_demo.cpp	54
//
//T& bigger(const T&v1, const T&v2)
const T& bigger(const T&v1, const T&v2) //添加一个const
{return v1 > v2 ? v1 : v2;
}int main()
{double dval = -0.88;float fval = -12.33;string oristr = "this is a test";string desstr;ostringstream oss(desstr);//输出字符串流ofstream outFile("result.dat");//输出文件流print(cout, -3) << endl;print(cout, dval) << endl;print(cout, fval) << endl;print(cout, oristr) << endl;print(outFile, -3) << endl;//文件输出流print(outFile, dval) << endl;print(outFile, fval) << endl;print(outFile, oristr) << endl;outFile.close();print(oss, -3) << endl;print(oss, dval) << endl;print(oss, fval) << endl;print(oss, oristr) << endl;//oss.close();cout << oss.str() << endl; //oss输出cout << absVal(dval) << endl;//double类型cout << absVal(fval) << endl; //float类型double d1 = 1.23;double d2 = 9.51;cout << compare(d1, d2) << endl;string s1("zhi");string s2("world");cout << compare(s1, s2) << endl;//传引用double a = 1.22;double b = 6.89;cout << bigger(a,b) << endl;cout << bigger(s1, s2) << endl;getchar();return 0;
}

 


http://www.ppmy.cn/news/665217.html

相关文章

TVS二极管SM8S36A,花落谁家?

汽车的广泛应用,加速了汽车行业高速发展的同时,也促进了汽车电子行业快速发展。在这个注重智能化和用户体验的时代,汽车所面临的电路保护,诸如汽车总线、USB、CAN总线等,其防护等级越来越高,越来越复杂,同时也越来越严格了。对于汽车电子所需要运用的电路保护器件提出了…

【精选】DO-218AB封装SM8T36A / TVS瞬态抑制二极管主要参数

SM8T系列瞬态抑制二极管主要用于敏感电子设备、感应负载开关和照明引起的瞬态电压保护&#xff0c;尤其适用于汽车抛负载保护应用。 上海舒岳电子(www.shuyuedz.com)专业的电路保护器件供应商&#xff0c;精心整理DO-218AB封装SM8T36A/TVS瞬态抑制二极管主要参数特征。以捷捷微…

W25Q128数据手册翻译(3)

W25Q128数据手册翻译&#xff08;3&#xff09; 8 指令8.1 器件ID和指令集表8.1.1 制造商和器件标识符8.1.2 指令集表1&#xff08;标准/双线/四线SPI指令&#xff09;8.1.3 指令集表2&#xff08;标准/双线/四线SPI指令&#xff09;8.1.4 指令集表3&#xff08;QPI指令&#x…

金蝶云星空财务软件被locked勒索病毒攻击后如何更快解密数据库数据?

金蝶云星空财务软件是一款广泛应用于企业财务管理领域的软件&#xff0c;然而&#xff0c;近期很多企业的金蝶云星空财务软件遭受到了locked勒索病毒的攻击&#xff0c;导致数据库数据被加密。而这次的locked勒索病毒采用了新的加密形式&#xff0c;它不仅能够扫描出各种软件系…

【加密算法】5 种常见的摘要、加密算法

大家平时的工作中&#xff0c;可能也在很多地方用到了加密、解密&#xff0c;比如&#xff1a; 用户的密码不能明文存储&#xff0c;要存储加密后的密文用户的银行卡号、身份证号之类的敏感数据&#xff0c;需要加密传输还有一些重要接口&#xff0c;比如支付&#xff0c;客户…

如何使用诺基亚手机收发Gmail邮件

出于信息保密的原因&#xff0c;工作地无法上网&#xff0c;这可苦了我这般习惯网络的程序员了。好在现今手机功能丰富&#xff0c;用手机上网已不是什么新鲜事。聊天有手机QQ、MSN&#xff0c; 看网页有Mini Opera、UcWeb&#xff0c;唯独收发Email还难以找到趁手的工具。在试…

诺基亚的移动互联网:手机变身移动PC

当你走在长安街上&#xff0c;突然看见了人民大会堂后面那个巨大的蛋形建筑&#xff0c;你想知道那是什么&#xff0c;你该怎么办&#xff1f;”2008年12月10日&#xff0c;赵科林(Colin Giles)将这个问题抛向记者。 作为诺基亚(中国)投资有限公司总裁&#xff0c;赵科林并不是…

2018年,Windows Phone 8.1还能做什么

本文于2018年9月30日首发于IT之家。 地址&#xff1a;点击这里 前言 今年8月21日&#xff0c;据IT之家报道&#xff0c;微软公布了Windows Phone 8.1应用商店的关闭时间表&#xff0c;从今年的10月31日开始&#xff0c;Windows Phone 8.1的应用商店将不再接受新软件的提交&…