c++-C++入门级问题,关于函数模版

问题描述

C++入门级问题,关于函数模版

编一个程序,用同一个函数名对n个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。用函数模版实现。
请大家注意这里的n个数据是未知的,个数也是未知的。也许大家之前在谭老师教材里看到这题,但是答案并不准确。希望大神帮忙给个程序,我试了多次都不行,毕竟刚入门。。。

解决方案

这个问题的关键点在比较的时候,被比的两个数的类型是未知的,所以要用父类的方法作比较。要把不同类型的数据定义成那个父类的继承类。
至于数据的个数事先是不知道的,那就定义个个数可变的数组就可以了。

解决方案二:

模板本身就可以支持整数,单精度,双精度等。
至于可变参数个数,这个如果用C++的variadic template可以很容易支持

解决方案三:

其实我想问的不在于函数模版这一块,就在于数组这一块,数组的定义方式还有在什么位置输入输出数组。。。。

解决方案四:

这个我也不太懂。。。好复杂的说。。。。

解决方案五:

这个我也不太懂。。。好复杂的说。。。。

解决方案六:

有些数据类型可以直接比较,有的必须进行运算符重载之后才可以

时间: 2024-12-09 18:16:58

c++-C++入门级问题,关于函数模版的相关文章

C++模板的特化详解(函数模版特殊,类模版特化)

模版与特化的概念 函数模版与类模版 C++中模板分为函数模板和类模板 函数模板:是一种抽象函数定义,它代表一类同构函数. 类模板:是一种更高层次的抽象的类定义. 特化的概念 所谓特化,就是将泛型的东东搞得具体化一些,从字面上来解释,就是为已有的模板参数进行一些使其特殊化的指定,使得以前不受任何约束的模板参数,或受到特定的修饰(例如const或者摇身一变成为了指针之类的东东,甚至是经过别的模板类包装之后的模板类型)或完全被指定了下来. 模板特化的分类 针对特化的对象不同,分为两类:函数模板的特化和

C++函数模版实现

若一个程序的功能是对某种特定的数据类型进行处理,则将所处理的数据类型说明为参数,那么就可以把这个程序改写成为模版,模版可以让程序对任何其他数据类型进行同样方式的处理. 本节主要是说一下C++的函数模版,函数模版的定义一般形式是: template <类型形式参数表>  返回类型    函数名(形参) {     //函数实现 } 看一个实例: #include <cstdio> #include <iostream> using namespace std; //函数模

c++ 类模版、成员函数模版、函数模版 用法

C++函数模版与类模版. template <class T> void SwapFunction(T &first, T &second){ }//函数模版 template <class T>//类模版 class CTemplate{ public:     void SWap(T &first, T &second){     } };   #include <iostream> class Single{ public: sta

linux下练习 c++ 函数模版例子

//函数模版使用 //函数模版标准不支持参数默认值 #include<iostream> #include<cstring> using namespace std; template <typename T> void sort(T* a,int n)//普通冒泡排序 { bool changed; do { changed=false; for(int i=1;i<n;i++) { if(a[i]<a[i-1]) { swap(a[i],a[i-1]);

php入门级别的分页函数

 代码如下 复制代码 function page($sql,$pagesize=10,$class=""){    if(!is_string($sql)){ return 0;exit;}  $result=mysql教程_query($sql);  if(!$result){return 0;exit;}  if(!$recordnum=mysql_num_rows($result)){return 0;exit;}  $totalpage=ceil($recordnum/$pag

泛型编程深入探索(一) 模版高级特性小结

一些基本的模版特性: 非类参数模版 模版所声明的参数可以不是类参数,可以声明的非类参数包括整数(double,float不可以),enum,对象引用或指针. 通过模版嵌套实现类或非类参数载类方法参数上的重载(调用时实现,不在定义时实现) 友元函数模版: 直接举例: template <typename T> friend ostream& operator<< <T>(ostream& os, const T& t){}; 内联模版函数: 模版定

c++重载决议具体化优先于函数模板

问题描述 c++重载决议具体化优先于函数模板 template void f(T a){ cout << "aaaaaaa"; } template <> void f(int & a){ cout << "fffffffffff"; } int b:f(b); 为什么输出aaaaaaa,不是应该输出fffffffffff吗,看书上说具体化优先于模板函数的 求知道的大神指点下啦,万分感谢 解决方案 #include <

成员函数指针与高性能的C++委托 (Member Function Pointers and the Fastest Possible C++ Delegates)

标准C++中没有真正的面向对象的函数指针.这一点对C++来说是不幸的,因为面向对象的指针(也叫做"闭包(closure)"或"委托(delegate)")在一些语言中已经证明了它宝贵的价值.在Delphi (Object Pascal)中,面向对象的函数指针是Borland可视化组建库(VCL,Visual Component Library)的基础.而在目前,C#使"委托"的概念日趋流行,这也正显示出C#这种语言的成功.在很多应用程序中,&qu

用函数模板,写一个简单高效的 JSON 查询器的方法介绍_javascript技巧

JSON可谓是JavaScript的亮点,它能用优雅简练的代码实现Object和Array的初始化.同样是基于文本的数据定义,它比符号分隔更有语义,比XML更简洁.因此越来越多的JS开发中,使用它作为数据的传输和储存. JS数组内置了不少有用的方法,方便我们对数据的查询和筛选.例如我们有一堆数据: 复制代码 代码如下: var heros = [        // 名============攻=====防=======力量====敏捷=====智力====        {name:'冰室女巫