Template function 函数模板用法

#include<iostream>
using namespace std;

const double PI = 3.1415926;

template <class T>
T min(T a[], int n){
	int i;
	T minv = a[0];
	for (i = 1; i < n; i++){
		if (a[i] < minv)
			minv = a[i];
	}
	return minv;
}

template<class T1>
double Circle_Square(T1 x){
	cout << "From template function";
	return x*x*PI;
}

double Circle_Square(long x){
	cout << "From long type function";
	return x*x*PI;
}

int main(){
	int a[] = { 2, 4, 1, 5, 6, 87, 5, 5, 6 };
	double b[] = { 2.33, 4.01, 3.0, 1.011 };
	cout << "min of a[]: " << min(a, 9) << endl;
	cout << "min of b[]: " << min(b, 4) << endl;

	int r1 = 1;
	double r2 = 2.0;
	long r3 = 3;     //use the Overloaded functions if has, then refer to the template functions
	cout << " r1 " << Circle_Square(r1) << endl;
	cout << " r2 " << Circle_Square(r2) << endl;
	cout << " r3 " << Circle_Square(r3) << endl;
	int i;
	cin >> i;
	return 0;
}

Results:  

Template function 函数模板用法,布布扣,bubuko.com

时间: 2024-10-07 15:43:43

Template function 函数模板用法的相关文章

C++ 函数模板用法

泛型编程概念:不考虑具体数据类型的编程方式: 函数模板: 1.提供一种特殊的函数可用不同类型进行调用: 2.与普通函数很相似,区别是类型可被参数化: template <typename T> //template关键字用于声明开始进行泛型编程 void Swap(T &a, T &b) //typename关键字用于声明泛指类型 { T tmp = a; a = b; b = tmp; } 函数模板的应用: 1.自动类型推导调用: 2.具体类型显示调用: int a = 3;

模板函数(template function)出现编译链接错误(link error)之解析

总的结论:    将template function 或者 template class的完整定义直接放在.h文件中,然后加到要使用这些template function的.cpp文件中. 1. 现象描述 类似于参考文献[1],当我们以如下方式使用模板函数时,会出现模板函数声明.定义分离带来的链接错误: 1 // File "foo.h" 2 template<typename T> 3 extern void foo(); 1 // File "foo.cpp

嵌入式之---常用模板函数(用法说明函数、参数解析函数)

主要内容:嵌入式常用模板函数(用法说明函数.参数解析函数) /*显示参数列表*/ void usage() {     printf("usage: server [-p:x] [-i:IP] [-o]\n\n");     printf("       -p:x      Port number to listen on\n");     printf("       -i:str    Interface to listen on\n");

MATLAB 函数句柄Function handle的用法(Af = @(x) A*x;)

函数句柄的作用是可以把函数句柄直接设置为参数然后执行 函数句柄(Function handle)是MATLAB的一种数据类型.引入函数句柄是为了使feval及借助于它的泛函指令工作更可靠:使“函数调用”像“变量调用”一样方便灵活:提高函数调用速度,特别在反复调用情况下更显效率:提高软件重用性,扩大子函数和私用函数的可调用范围:迅速获得同名重载函数的位置.类型信息. MATLAB中函数句柄的使用使得函数也可以成为输入变量,并且能很方便的调用,提高函数的可用性和独立性. 例如: 新建M文件f1.m

C++中函数模板template和函数参数为指针,且有返回值的结合使用

1 #include<iostream> 2 using namespace std; 3 // 利用模板函数计算一个表达式 4 template<class Type> 5 Type Abc(Type a,Type b,Type c) 6 { 7 return a+b+c; 8 } 9 // 利用引用参数指针计算一个表达式 10 template<class Type> 11 Type ABC(Type *a,Type *b,Type *c) 12 { 13 retu

C++ template学习一(函数模板和模板函数)

函数模板和模板函数(1)函数模板函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数.函数模板的声明形式为:template<typename(或class) T><返回类型><函数名>(参数表){ 函数体}其中,template是定义模板函数的关键字:template后面的尖括号不能省略:typename(或class)是声明数据类型参数标识符的关键字,用以说明它后面的标识符是数据类型标识符

C++中函数模板template的使用

下面以一个简单程序演示一下函数模板的使用: 1 #include<iostream> 2 using namespace std; 3 template<class Type> 4 Type Abc(Type a,Type b,Type c) 5 { 6 return a+b+c; 7 } 8 int main() 9 { 10 int a=1,b=2,c=3; 11 cout<<"a= "<<a<<",b= &qu

hdu2824 The Euler function 筛选法求欧拉函数模板题

//求a , b范围内的所有的欧拉函数 //筛选法求欧拉函数模板题 #include<cstdio> #include<cstring> #include<iostream> using namespace std ; const int maxn = 3000010 ; typedef __int64 ll ; int e[maxn] ; int a ,  b ; void Euler() { int i,j; for (i=1;i<maxn;i++) e[i]

函数模板与模板函数

1.函数指针--指针函数  函数指针的重点是指针.表示的是一个指针,它指向的是一个函数,例子: int   (*pf)(); 指针函数的重点是函数.表示的是一个函数,它的返回值是指针.例子: int*   fun(); 2.数组指针--指针数组  数组指针的重点是指针.表示的是一个指针,它指向的是一个数组,例子: int   (*pa)[8]; 指针数组的重点是数组.表示的是一个数组,它包含的元素是指针.例子; int*   ap[8]; 3.类模板--模板类(class   template-