函数模板的定义!定义一个函数模板Larger,比较2个数的大小,返回较大的那个.如果想比较一个整型(int)和一个浮点型
来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/23 23:01:47
函数模板的定义!
定义一个函数模板Larger,比较2个数的大小,返回较大的那个.
如果想比较一个整型(int)和一个浮点型(double)的变量大小并以大的那个变量的参数类型返回其本身,
主要是返回的参数类型不确定.
定义一个函数模板Larger,比较2个数的大小,返回较大的那个.
如果想比较一个整型(int)和一个浮点型(double)的变量大小并以大的那个变量的参数类型返回其本身,
主要是返回的参数类型不确定.
首先问一下为何需要这样的功能呢?即使函数返回值类型不定,最终返回值还是要赋给一个确定类型的变量呀.
要返回不同类型的值有几种方法.其一是返回一个union.比如
template
union U {T0 _0; T1 _1;};
template
U larger(T0 v0,T1 v1)
{
U u;
if (v0 >= v1) u._0 = v0;
else u._1 = v1;
return u;
}
不过这样做有个缺点就是该函数的调用方无法知道到底返回的是个什么类型.要想知道返回类型,可以使用boost库中的variant.下面的代码演示如何利用boost::variant来返回多种类型以及判断所返回的类型.注意,要编译这段代码需要先下载boost库并将其放在编译器的include目录下.
#include
#include
template
boost::variant larger(T0 v0,T1 v1)
{
boost::variant r;
if (v0 >= v1) r = v0;
else r = v1;
return r;
}
int main()
{
boost::variant r;
r = larger(1,2.0);
if (boost::get(&r)) std::cout
要返回不同类型的值有几种方法.其一是返回一个union.比如
template
union U {T0 _0; T1 _1;};
template
U larger(T0 v0,T1 v1)
{
U u;
if (v0 >= v1) u._0 = v0;
else u._1 = v1;
return u;
}
不过这样做有个缺点就是该函数的调用方无法知道到底返回的是个什么类型.要想知道返回类型,可以使用boost库中的variant.下面的代码演示如何利用boost::variant来返回多种类型以及判断所返回的类型.注意,要编译这段代码需要先下载boost库并将其放在编译器的include目录下.
#include
#include
template
boost::variant larger(T0 v0,T1 v1)
{
boost::variant r;
if (v0 >= v1) r = v0;
else r = v1;
return r;
}
int main()
{
boost::variant r;
r = larger(1,2.0);
if (boost::get(&r)) std::cout
函数模板的定义!定义一个函数模板Larger,比较2个数的大小,返回较大的那个.如果想比较一个整型(int)和一个浮点型
c++:定义一个求绝对值函数的模板,调用它分别求整数,单浮点数何双浮点数的绝对值
定义一个函数,能返回两个浮点型数据的大者,并在主函数中调用它,实现打印输入的3个数中的最大者.
利用模板类定义一个m*n的矩阵类Matrix要求:构造函数可以初始化一个给定大小的矩阵,实现加法和乘法
C++的应用函数模板定义通用函数
模板函数定义
高分求六级作文模板我想背一个模板,比较好的那种,
c++定义两个sum函数一个支持整型数组,一个支持浮点型数组,求一维数组元素之和
如何定义一个函数 返回一个指向数组的指针
C语言怎么定义一个函数比较两数大小,
C语言编程求和题定义一个函数float average(int d[],int n),计算整型数组d中n个有效元素的所有
定义一个求阶乘的函数,int fun1(int n),该函数用来求形参n的阶乘,并返回.要求在函数n中