• 函数模板 -----实例化-----函数
  • 模板参数

template<typename T>

template<class T>

  • 四个例子
// ConsoleApplication3.cpp: 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#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;
//}template <typename T>
int compare(const T &v1, const T &v2)
{if (v1 < v2) return -1;if (v1 > v2) return 1;return 0;
};template <class T>
T absVal(T val)
{return val > 0 ? val : -val;
}template <typename T1,typename T2>
T1& print(T1 & s, T2 val)
{s << val;return s;
}template<class T>
const T& bigger(const T& v1, const T& v2)
{return v1 > v2 ? v1 : v2;
}int main()
{double d1 = 1.23;double d2 = 9.56;cout << compare(d1, d2) << endl;string s1("hi");string s2("world");cout << compare(s1, s2) << endl;double dval = -0.88;float fval = -12.33;cout << absVal(dval) << endl;cout << absVal(fval) << endl;string orister = "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, orister) << endl;print(outFile, -3) << endl;print(outFile, dval) << endl;print(outFile, fval) << endl;print(outFile, fval) << endl;print(outFile, orister) << endl;outFile.close();print(oss, -3) << endl;print(oss, dval) << endl;print(oss, fval) << endl;print(oss, orister) << endl;double a = 1.23;double b = 5.39;cout << bigger(a, b) << endl;system("pause");return 0;
}

《C++ primer 》 猎豹网校 函数模板 2018/10/9相关推荐

  1. CPP2022-16-宏、函数重载与函数模板

    6-1 通用对数函数(宏) 分数 5 全屏浏览题目 切换布局 作者 李祥 单位 湖北经济学院 C语言库函数只提供以 e 和 10 为底数的对数函数.我们自行设计一个以任意正实数 a 为底数.任意正实数 ...

  2. [转]C++函数模板与模板函数

    1.函数模板的声明和模板函数的生成 1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数. 函数模板 ...

  3. C++知识点62——模板实参推断与函数模板的特化

    一.函数指针与模板实参推断 可以用函数模板初始化一个函数指针或给一个函数指针赋值 示例 template <typename T> int comp(const T &a, con ...

  4. C++知识点55——函数模板

    一.为啥需要模板 防止相同功能的重复实现 二.函数模板 1.模板函数的定义 template <typename T> const T& Max(const T &a, c ...

  5. mysql猎豹_猎豹网校MySQL数据库

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 猎豹网校MySQL数据库 链接:http://pan.baidu.com/s/1i3wyPjn 密码:qxhm 教程目录 第1章 了解SQL 1.1 数据 ...

  6. 类和函数模板以及特例化

    一.函数模板 1.定义 建立一个通用函数,它所用到的数据的类型(包括返回值类型.形参类型.局部变量类型)可以不具体指定,而是用一个虚拟的类型来代替(实际上是用一个标识符来占位),等发生函数调用时再根据 ...

  7. 函数模板和普通函数区别

    /***Copyright (c) 2018 Young Fan.All Right Reserved.*Filename: 2 函数模板和普通函数区别*Author: Young Fan*Date: ...

  8. 笔记②:牛客校招冲刺集训营---C++工程师(面向对象(友元、运算符重载、继承、多态) -- 内存管理 -- 名称空间、模板(类模板/函数模板) -- STL)

    0618 C++工程师 第5章 高频考点与真题精讲 5.1 指针 & 5.2 函数 5.3 面向对象(和5.4.5.5共三次直播课) 5.3.1 - 5.3.11 5.3.12-14 友元 友 ...

  9. 函数模板和类模板 模版特化

    函数模板和类模板 模版特化 关键字: template <class t>, template <typename t> 模板 模板(template)是一个将数据类型参化的工 ...

  10. C++ 函数模板和排序的函数模板——学习笔记

    我们在使用重载函数时,只是使用了函数名,而函数体还是得分别定义,在C++中函数模板为我们很好的解决了这个问题. 1.函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函 ...

最新文章

  1. 一个c/c++分布式框架ZMQ或者ZeroMQ, 介绍和win下安装使用方法
  2. C#.NET 中的类型转换 (转)
  3. C++覆盖和重载的区别
  4. Windows Git客户端搭建
  5. Linux 小知识翻译 - 「Linux的吉祥物企鹅叫什么名字?」
  6. python 迭代器、生成器知识点总结
  7. python增删改查mysql_Python操作MySQL(增删改查)
  8. iOS开发 -------- Block技术中的weak - strong
  9. EverWeb for Mac(网页设计软件)v3.5.1中文版
  10. 获取本机IP可区分系统可区分虚拟机和本机java程序跨平台
  11. Android读取电话薄中的电话号码
  12. nrf52832(nrf52810)之硬件I2C(TWI)驱动BMI160
  13. PB12下geturl获取汉字乱码的解决
  14. 常用的颜色色值(转)
  15. java 委托 代理 区别_区分委托,组合和聚合(Java OOdevise)
  16. 识别“百度权重”作弊的方法
  17. PLC可编程控制器、变频调速综合实验装置(网络型)
  18. 隔壁老王都知道的JavaScript+mysql+HTML+CSS的客户管理系统设计和实现【建议收藏,不然看着看着就不见了】
  19. IDEA快捷键(持续学习ing)
  20. 说说自己工作中的测试流程

热门文章

  1. ISP模块之RAW DATA去噪(一)
  2. python批量制作ppt_实例25_批量生成PPT版荣誉证书
  3. 侧信道实验实验二 S盒DPA侧信道攻击
  4. 计算机有关的科技论文题目,计算机前沿科技论文选题范文 计算机前沿科技专业论文题目如何拟...
  5. DLL注入——使用注册表
  6. 尚硅谷前端视频总结(一)
  7. access ea 可以联网吗_如何看待EA在STEAM上推出EA Play(原EA Access会员)?
  8. 激光点云常用数据集整理
  9. 超宽带 DWM1000模块 引脚连接
  10. 计算机视觉应用培训心得体会,计算机视觉专题分享总结(附PPT)