函数模板的使用

一、 函数模板的使用
使用函数模板可以简化 形参个数相同,而类型不同的函数。
template<typename T> //可以用class替换typename int max(int array[],int len) // int array[len]
{
int imax=;
for(int i=;i<len;i++)
{
if(array[i]>imax)
{
imax=array[i];//取得最大值
}
}
return imax;
} float max(float array[],int len) // int array[len]
{
float imax=;
for(int i=;i<len;i++)
{
if(array[i]>imax)
{
imax=array[i];//取得最大值
}
}
return imax;
} double max(double array[],int len) // int array[len]
{
double imax=;
for(int i=;i<len;i++)
{
if(array[i]>imax)
{
imax=array[i];//取得最大值
}
}
return imax;
} , 99.887703

使用模板后代码,不同类型的重载 ,只需要定义一个模板函数

#include "stdafx.h"
#include <malloc.h>
int max(int a,int b)
{
return ;
}
int max(int a,int b,int c)
{
return ;
}
//int max(int array[],int len) // int array[len]
//{
// int imax=0;
// for(int i=0;i<len;i++)
// {
// if(array[i]>imax)
// {
// imax=array[i];//取得最大值
// }
// }
// return imax;
//}
//
//float max(float array[],int len) // int array[len]
//{
// float imax=0;
// for(int i=0;i<len;i++)
// {
// if(array[i]>imax)
// {
// imax=array[i];//取得最大值
// }
// }
// return imax;
//} template <class S,class ti> S max(S array[],ti len) // int array[len]
{
S imax=;
for(ti i=;i<len;i++)
{
if(array[i]>imax)
{
imax=array[i];//取得最大值
}
}
return imax;
}
int _tmain(int argc, _TCHAR* argv[])
{
int a[]={,,,,,};
float af[]={1.0,3.0,1.0,,,99.8877};
printf("%d,%d\n",max(,),max(,,));
printf("数组a最大值为%d \n",max(a,sizeof(a)/sizeof(int)));
printf("数组a最大值为%f ",max(af,sizeof(af)/sizeof(float))); getchar();
return ;
}

mfc 函数模板的更多相关文章

  1. c++函数模板作为类的成员函数,编译报错LNK2019的解决方法

    为了使某个类的成员函数能对不同的参数进行相同的处理,需要用到函数模板,即template<typename T> void Function(). 编译时报错LNK2019 解决方法: 1 ...

  2. C++STL - 函数模板

    模板主要是为了泛型编程,做到与类型无关 模板有函数模板和类模板,本文主要整理的是函数模板 1.函数模板定义 template<typename 类型形参1,typename 类型形参2,...& ...

  3. 使用getopt_long来解析参数的小函数模板

    getopt_long原型 #define no_argument 0 #define required_argument 1 #define optional_argument 2 struct o ...

  4. C++函数重载和函数模板

    1.函数重载 这是小菜鸟写的一个例子. 函数重载应该注意以下几点: 1.1重载函数有类似的功能: 1.2只能以参数的类型(形参个数和类型)来重载函数, int max(int a,int b);flo ...

  5. 零值初始化&字符串常数作为函数模板参数

    1.在定义一个局部变量时,并希望该局部变量的初始化一个值,可以显示调用其默认构造函数,使其值为0(bool类型默认值为false). template <typename T> void ...

  6. 让gcc支持成员函数模板的trick

    让gcc支持成员函数模板的trick 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循“署名-非商业用途-保持一致”创作公用协议   gcc 4.7.3 不支持成员 ...

  7. 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板

    [源码下载] 不可或缺 Windows Native (16) - C++: 函数重载, 缺省参数, 内联函数, 函数模板 作者:webabcd 介绍不可或缺 Windows Native 之 C++ ...

  8. Effective C++ -----条款45:运用成员函数模板接受所有兼容类型

    请使用member function templates(成员函数模板)生成”可接受所有兼容类型“的函数. 如果你声明member templates 用于“泛化copy构造”或“泛化assignme ...

  9. c++ 左值右值 函数模板

    1.先看一段代码,这就是一种函数模板的用法,但是红色的部分如果把a写成a++或者写成一个常量比如1,都是编译不过的,因为如果是a++的话,实际上首先是取得a的 值0,而0作为一个常量没有地址.写成1也 ...

随机推荐

  1. java虚拟机---内存

    java虚拟机---内存 Java虚拟机,即JVM,负责运行java程序,每个java程序都运行在一个具体jvm实例上.Java虚拟机的体系架构分为:类装载子系统.运行时数据区.执行引擎.类装载子系统 ...

  2. show tables from information_schema/performance_schema/sys;

    root@localhost:3306.sock [performance_schema]>select version();+------------+| version()  |+----- ...

  3. 铁乐学python_shelve模块详解

    python序列化模块-shelve模块详解 shelve:vt. 将(书等)放置在架子上:搁置,将某事放到一旁不予考虑:将-搁在一边:装搁架于: 个人感觉有点像字典缓存?暂时搁置到一旁的意思? 研究 ...

  4. November 19th 2016 Week 47th Saturday

    Nature didn't need an operation to be beautiful. It just was. 自然之美无需刻意而为,其本身即为美. Recently I saw seve ...

  5. MFC调试时可以,使用生产的exe时,显示未响应解决方案

    首先,使用release模式,生成解决方案和exe. 对生成的exe,选择属性,兼容性,win7,应用,即可解决. 此方法对debug无用

  6. 数据结构&堆&heap&priority_queue&实现

    目录 什么是堆? 大根堆 小根堆 堆的操作 STL queue 什么是堆? 堆是一种数据结构,可以用来实现优先队列 大根堆 大根堆,顾名思义就是根节点最大.我们先用小根堆的建堆过程学习堆的思想. 小根 ...

  7. ubuntu 14.04 安装 openvswitch

    安装 openvswitch (这里以openvswitch lib 分支为例) 如果没有安装git,如果有请跳过 $ sudo apt-get install git install ovs $ g ...

  8. python第二十三课——dict中的函数

    dic1 = {...} dic2 = {...} dic1.update(dic2) 1.update(dict):dic1调用update传入dic2,如果dic2中的内容在dic1中不存在,那么 ...

  9. libextobjc 实现的 defer

    算法沉思录:分而治之(复用): 分而治之是指把大而复杂的问题分解成若干个简单的小问题,然后逐个解决.这种朴素的思想来源于人们生活与工作的经验,也完全适合于技术领域. 要崩溃的节奏: 要崩溃的节奏: V ...

  10. 20165318 2017-2018-2 《Java程序设计》第六周学习总结

    20165318 2017-2018-2 <Java程序设计>第六周学习总结 教材内容学习总结 第八章 常用实用类 1.String类 String类用来处理字符序列,在java.lang ...