编程题-函数模板

一、编写一个函数模板,求数组中的最大元素,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整数也可以是双精度类型。

cpp 复制代码
#include<iostream>
using namespace std;
template <class Type>             //函数模板
Type max(Type *Array,int size)
{ int i,j=0;
      for (i=1;i<size-1;i++)
	    if (Array[i]>Array[j])
	    { j=i; } 
      return  Array[j];
}
int main()
{ int intArray[]={11,12,13,14,7,8,9};
      double doubleArray[]={11.2,12.3,13.2,14.5,14.8,8.7,9.3};
      cout<<max(intArray,7)<<endl;
      cout<<max(doubleArray,7)<<endl;
return 0;
}

二、编写一个函数模板,使用冒泡排序将数组内容由小到大排列并打印出来,并写出调用此函数模板的完整程序,使得函数调用时,数组的类型可以是整数也可以是双精度型。

cpp 复制代码
#include <iostream>
using namespace std;
template <class Type>
void sort(Type *Array,int size)
{ int i,j;
  for (i=0;i<size-1;i++)
	for (j=0;j<size-i-1;j++)
	  if (Array[j]>Array[j+1])
	  { Type temp= Array[j];
	    Array[j]=Array[j+1];
	    Array[j+1]=temp;
	  }  
for (i=0;i<=size-1;i++)
    cout<<Array[i]<<" ";
  cout<<endl;
}
int main()
{ int intArray[]={11,12,13,14,7,8,9};
  double doubleArray[]={11.2,12.3,13.2,14.5,14.8,8.7,9.3};
  sort(intArray,7);
  sort(doubleArray,7);
  return 0;
}

三、建立一个用来实现求三个数和的类模板(将成员函数定义在类模板的内部), 并写出调用此类模板的完整程序。在类模板外定义各成员函数。

cpp 复制代码
#include<iostream>
using namespace std;
template<typename T>          //模板声明,其中为T类型参数
class Sum{                    //类模板名为Sum
  public:
    Sum(T a,T b,T c);         //声明构造函数的原型
    T add();                //声明成员函数add的原型
  private:
T x,y,z;
};
template <typename T>         //模板声明
Sum<T>::Sum(T a, T b,T c)     //在类模板体外定义构造函数
{ x=a;  y=b;  z=c;
}
template <typename T>         //模板声明
T Sum<T>:: add()             //在类模板体外定义成员函数add,返回类型为T
{ return x+y+z;
}
int main()
{ Sum<int> s1(3,7,9);         //用类模板定义对象s1,此时T被int替代
  Sum<double> s2(12.34,56.78,67.89); 
//用类模板定义对象s2,此时T被double替代
  cout<<"三个整数的和是:"<<s1. add()<<endl;
  cout<<"三个双精度数的和是:"<<s2. add()<<endl;
  return 0;
}
相关推荐
.YM.Z6 分钟前
C++——【红黑树】原理详解:定义、性质、插入变色与旋转实现
开发语言·c++
沐欣工作室_lvyiyi17 分钟前
水文信息检测系统的设计与实现(论文+源码)
c语言·单片机设计·柳州工学院·河南工学院·怀化学院·集美大学·辽宁科技学院
jidaowansui18 分钟前
B3643 图的存储———>数组模拟邻接矩阵
算法
y1su29 分钟前
Leetcode 二分模板
java·数据结构·算法·leetcode·排序算法
youshi666836 分钟前
平衡车——PID算法优化
stm32·单片机·嵌入式硬件·算法·pid·平衡车
无名猿1 小时前
constexpr 能力扩张:从 C++11 到 C++20 的编译期计算
c++·性能优化·现代c++·编译期
007张三丰1 小时前
C/C++ 内存管理详解:从内存分布到 new/delete 底层原理
java·c语言·c++·内存管理
聪明蛋子哟1 小时前
不仅仅是向量检索:结合知识图谱与Tool Calling的混合增强生成(Hybrid RAG)方案
人工智能·算法·知识图谱
Pniubi1 小时前
力扣55跳跃游戏(贪心)
算法·leetcode·游戏
IT研究室2 小时前
最新计算机毕业设计选题推荐-基于spring boot的心桥·心理健康综合服务平台-网站-文档指导-Java-springboot
java·spring boot·课程设计