四个C++函数模板实例

原创 2016年06月01日 21:39:28

实例一

#include <string> 
#include <iostream> 

using namespace std; 

template<typename T> void print(const T& var) 
{     
    cout << var << endl; 
} 
int main() 
{     
    string str("Hello World");     
    const int num=12345; 
    print(str); 
    print(num); 
    return 0; 
}




实例二

#include <iostream.h> 
// 定义函数模板,找出三个值中最小的值,与数据类型无关 
template <class T> 
T min(T ii, T jj, T kk) 
{ 
    T temp; 
    if((ii<jj)&&(ii<kk)){     temp=ii; } 
    else if((jj<ii)&&(jj<kk)){ temp=jj; } 
    else{    temp=kk;} 
    return temp; 
} 
int main()  
{ 
    cout<<min("anderson","Washington","Smith")<<endl; 
    return 0;
}




实例三

#include <iostream>
#include <string>

using namespace std;

template<class T> void swap(T *x, T *y){//函数的模板,只要能使用等号赋值类型都可以用这个模板互换
	 T temp = *x;
	 *x = *y;
	 *y = temp;
	 }

int main()
{
    int i = 9, j = 5;
    float k = 9.2, l = 5.6;
    swap(&i, &j);//交换整形
    swap(&k, &l);//交换浮点型
    cout<<"i = "<<i<<" , j = "<<j<<endl;
    cout<<"k = "<<k<<" , l = "<<l<<endl;
    return 0;
} 




实例四

使用普通函数;

#include<iostream>

using namespace std;

int int_add(int a,int b)//定义函数int_add用于int型数据相加
{
 int c;
 c=a+b;
 return c;
} 

double dou_add(double a,double b)//定义函数dou_add用于double型函数相加
{
 double c;
 c=a+b;
 return c;
}

int main()
{
 cout<<int_add(5,3)<<endl;  //调用int_add函数
 cout<<dou_add(5.35,5.5)<<endl;  //调用dou_add函数
 return 0;
}

使用函数重载;

#include<iostream>

using namespace std;

int n_add(int a,int b)//定义函数n_add用于int型数据相加
{
 int c;
 c=a+b;
 return c;
} 

double n_add(double a,double b)//定义函数n_add用于double型函数相加
{
 double c;
 c=a+b;
 return c;
}

int main()
{
 cout<<n_add(5,3)<<endl;  //调用n_add函数
 cout<<n_add(5.35,5.5)<<endl;   //调用n_add函数
 return 0;
}


使用函数模板

#include<iostream>

using namespace std;

template<typename T>
T n_add(T a,T b)
{
 T c;
 c=a+b;
 return c;
} 

int main()
{
 cout<<n_add(5,3)<<endl;
 cout<<n_add(5.35,5.5)<<endl;
 return 0;
}



c++ 模板函数,类模板,仿函数使用实例代码

1.模板函数  #include using namespace std; template T myMin(T x, T y) {  return (x } ...
  • alex_xhl
  • alex_xhl
  • 2015年08月21日 23:26
  • 1683

函数模板和类模板的实例化和具体化

一.函数模板 1.显示实例化(explicit instantiation)和显示具体化(explicit specialization)的区别: (1) 形式上: 显示实例化:  ...
  • imxiangzi
  • imxiangzi
  • 2015年12月11日 15:51
  • 2330

C++函数模板的使用

函数模板: 函数模板是函数的蓝图或处方,编译器使用它生成函数系列的新成员。新函数在第一次使用时创建。从函数模板中生成的函数称为该模板的一个实例或模板的实例化。函数模板的开头是关键字template,表...
  • u010142437
  • u010142437
  • 2014年06月17日 15:40
  • 1459

C++——函数模板和函数指针

#include #include #include using namespace std; //定义函数模板 template void display_message(const st...
  • huiguimoyu
  • huiguimoyu
  • 2016年09月21日 19:01
  • 585

C++模板:函数模板和模板函数

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

C++模板之函数模板

泛型编程 编写与类型无关的逻辑代码,是代码复用的一种手段。模板是泛型编程的基础 模板 代表一个函数家族,该函数与类型无关,在使用时被参数化,根据实参类型产生函数的特定类型版本(它本身不是类或函...
  • ADDw1
  • ADDw1
  • 2017年03月18日 10:39
  • 423

C++模板剖析:函数模板、类模板解析

C++中关于模板&泛型编程问题:   问题引入:何编写一个通用加法函数?   (1)使用函数重载,针对每个所需相同行为的不同类型重新实现它 int Add(const int &_iLeft...
  • Sharp_UP
  • Sharp_UP
  • 2016年11月29日 21:36
  • 1038

C++ 类模板作为函数模板示例

类模板作为函数参数 函数的形参类型可以是类模板或类模板的引用,对应的实参 应该是该类模板实例化的模板类对象。 带有类模板参数的函数必须是函数模板。 #include using namespace s...
  • Slience_Perseverance
  • Slience_Perseverance
  • 2014年03月06日 17:20
  • 2799

C++ Template 基础篇(一):函数模板

C++ Template 基础篇(一):函数模板Template所代表的泛型编程是C++语言中的重要的组成部分,我将通过几篇blog对这半年以来的学习做一个系统的总结,本文是基础篇的第一部分。C Te...
  • lezardfu
  • lezardfu
  • 2017年02月24日 19:40
  • 2432

C++ 函数模板(十四)--template 泛型函数模板、通用函数、重载模板

#include #include using namespace std; //函数模板,typename 等价于 class template void test(AnyType &a, A...
  • Jason_chen13
  • Jason_chen13
  • 2016年09月07日 12:01
  • 798
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:四个C++函数模板实例
举报原因:
原因补充:

(最多只允许输入30个字)