【C++】函数模板 不同类型数组的运算

 1 #include <iostream>
 2
 3 using namespace std;
 4
 5 template<class T>void index(int n,T num1[]){
 6     for(int i=0;i<n;i++)
 7     {
 8         cout<<"index"<<i<<endl;
 9         cin>>num1[i];
10     };
11         }
12
13 template <class T>void print1(int n,T num1[]){
14      for(int i=0;i<n;i++)
15     {
16         cout<<i<< " "<<num1[i]<<endl;
17     };
18         }
19
20 template<class T> void print2(int n,T num1[]){
21      for(int i=0;i<n;i++)
22     {
23         cout<<i<< " "<<num1[i]<<endl;
24     };
25         }
26
27 template<class T>void rank(int n,T num1[]){
28     T k;
29     for (int i=0;i<n-1;i++)
30     {
31         for(int j=i+1;j<n;j++){
32             if(num1[i]>num1[j])
33             {
34                 k=num1[i];
35                 num1[i]=num1[j];
36                 num1[j]=k;
37
38                 };
39     }
40                     };
41     }
42
43 int main()
44 {
45     cout << "Hello world!" << endl;
46     int n;
47     int num1[20];
48     float num2[20];
49     double num3[30];
50     cout<<"total arry"<<endl;
51     cin>>n;
52     index(n,num1);    print1(n,num1);    rank(n,num1);    cout<<endl;    print2(n,num1);
53     index(n,num2);    print1(n,num2);    rank(n,num2);    cout<<endl;    print2(n,num2);
54     index(n,num3);    print1(n,num3);    rank(n,num3);    cout<<endl;    print2(n,num3);
55     return 0;
56 }
时间: 2024-12-14 18:15:05

【C++】函数模板 不同类型数组的运算的相关文章

【C++】函数重载 不同类型数组的运算

1 #include <iostream> 2 3 using namespace std; 4 5 void index(int n,int num1[]){ 6 for(int i=0;i<n;i++) 7 { 8 cout<<"index"<<i<<endl; 9 cin>>num1[i]; 10 }; 11 } 12 13 void index(int n,float num2[]){ 14 for(int i=

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

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

模板与泛型编程1(函数模板)

定义.实例化函数模板: 对于函数体完全相同,唯一差异就是参数类型的情况,我们可以定义一个通用的函数模板,而非为每个类型都定义一个新函数: 1 #include <iostream> 2 #include <vector> 3 using namespace std; 4 5 template <typename T>//模板参数列表 6 int compare(const T &v1, const T &v2) { 7 if(v1 < v2) re

函数模板,函数模板重载,可变参数模板,函数模板覆盖,通过引用交换数据

 1.函数模板初级,如果想使用模板,需要实例化,实例化的方式是加上<数据类型> #include <iostream> //函数模板可以对类型进行优化重载,根据类型会覆盖 //如果仍然要使用模板函数,需要实例化 template<class T> T add(T a, T b) { std::cout << "T add " << std::endl; return a + b; } int add(int a, int

函数模板和模板函数

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

C++STL - 函数模板

模板主要是为了泛型编程,做到与类型无关 模板有函数模板和类模板,本文主要整理的是函数模板 1.函数模板定义 template<typename 类型形参1,typename 类型形参2,...> 返回类型 函数模板名(调用形参表){函数体} 在返回类型,调用形参表和函数体中,所需要类型的地方都可以引用模板形参表中类型形参 template<typename A,typenamen B,typename _C> A function(B arg){ _C var; ... } 2.使

[c++][语言语法]函数模板和模板函数

参考:http://blog.csdn.net/beyondhaven/article/details/4204345 1.函数模板的声明和模板函数的生成 1.1函数模板的声明 函数模板可以用来创建一个通用的函数,以支持多种不同的形参,避免重载函数的函数体重复设计.它的最大特点是把函数使用的数据类型作为参数. 函数模板的声明形式为: template<typename 数据类型参数标识符> <返回类型><函数名>(参数表) {     函数体 } 其中,template

C++ 之 函数模板

函数模板可以用来创建一个通用功能的函数,以支持不同参数,进一步简化重载函数的函数体设计. 声明方法: template <typename 标识符> 函数声明 编译器从调用实参的类型,推导出函数模板的类型的参数. 举例: /* *funtpl.cpp *aim : function template *date : 2015-7-15 *author : zhang *compiled by g++ */ #include <iostream> using namespace st

C++模板(类模板、函数模板)

1.在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢? 答:class用于定义类,在模板引入c++后,最初定义模板的方法为:template<class T>,这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typename这个关键字,它的作用同class一样表明后面的符号为一个类型,这样在定义模板的时候就可以使用下面的方式了:      template