首页 > 编程语言 >c++打卡第二十九天

c++打卡第二十九天

时间:2023-05-17 22:34:25浏览次数:39  
标签:cout int void c++ 第二十九 num 打卡 模板 Absolute

模板编程

对于模板编程,写template<typename T>

一、函数模板编程

1、编辑模板

表明返回值T 或者无返回值+函数名(T&变量)

 

2、例题描述

请使用模板参数设计实现双倍功能函数,函数功能要求实现返回值为输入参数的两倍,函数参数应能适应整型、浮点型、双精度型等各种类型,返回值类型与参数一样。

裁判测试程序样例:

#include <iostream>
using namespace std;

/*请在这里填写答案*/

int main(void){
    char c='\0';
    int i=0;
    long l=0;
    scanf("%c%d%ld",&c,&i,&l);
    cout<<Double(c)<<endl;
    cout<<Double(i)<<endl;
    cout<<Double(l)<<endl;
    float f=1.1;
    double d=2.2;
    scanf("%f%lf",&f,&d);
    cout<<Double(f)<<endl;
    cout<<Double(d)<<endl;
    return 0;
}

输入样例:

0
1
200000
3.45
6.789

输出样例:

`
2
400000
6.9
13.578

3、代码实现

template <typename T>
T Double(T& a)
{
    return 2*a;
}

二、类模板编程

1、模板

class 类名

{

};

2、例题

请使用模板参数设计实现绝对值模板类Absolute,Absolute类功能要求成员函数getValue(void)const计算类数据的绝对值,类数据类型应能适应整型、浮点型、双精度型等各种类型,绝对值类型与类数据一样。

裁判测试程序样例:

#include <iostream>
using namespace std;

/*请在这里填写答案*/

int main(void){
    char c='\0';
    int i=0;
    long l=0;
    scanf("%c%d%ld",&c,&i,&l);
    float f=1.1;
    double d=2.2;
    scanf("%f%lf",&f,&d);
    Absolute<char> dc(c);
    cout<<dc.getValue()<<endl;
    Absolute<int> di(i);
    cout<<di.getValue()<<endl;
    Absolute<long> dl(l);
    cout<<dl.getValue()<<endl;
    Absolute<float> df(f);
    cout<<df.getValue()<<endl;
    Absolute<double> dd(d);
    cout<<dd.getValue()<<endl;
    return 0;
}

2、代码实现

template <class T>
class Absolute
{
    public:
        Absolute(T n_num)
        {
            this->num=n_num;
        }
         T getValue(void)const
        {
            return num>0?num:-num;
        }
        T num;
 } ;

3、结果实现

 

标签:cout,int,void,c++,第二十九,num,打卡,模板,Absolute
From: https://www.cnblogs.com/zzqq1314/p/17410537.html

相关文章

  • 输入输出流(C++)
    一、问题描述定义一个Dog类,包括体重和年龄两个数据成员及其成员函数,声明一个实例dog1,体重5,年龄10,使用I/O流把dog1的状态写入磁盘文件。再声明一个实例dog2,通过读取文件dog1的状态赋给dog2。分别用文本方式和二进制方式操作文件。二、代码实现1#include<fstream>2#includ......
  • 2654. 使数组所有元素变成 1 的最少操作次数(c++,gcd性质)
    题目链接:2654.使数组所有元素变成1的最少操作次数方法一:计算最短的gcd为1的子数组解题思路本题目标:使得所有的数组元素都变为\(1\),通过求相邻元素\(gcd\)将其赋值给一方的方式;思路:若想操作数最少,那么就是不为\(1\)的数\(x\)和1求\(gcd\),即\(x=gcd(x,1)\),......
  • 每日打卡,在比较字符的时候没必要非化成ascii值,直接比字符就行
    大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间星期四14:04,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母 D,代表星期四;第2对相同的字符是 E ,那是第5个英文字母,代表一天里的第14个钟头(于是一天的0点到23点由数字0到9、以及大......
  • c++打卡练习(33)
    歌星大赛,十个评委打分,去掉一个最高分,去掉一个最低分,求剩下的八个评分的平均分,作为选手的最终分数流程图:伪代码:源代码:#include<iostream>usingnamespacestd;intmain(){ inta[10],b[8]; inti,j,k,t,sum=0,Ave,max,min; cout<<"输入十个正整数"<<endl; for(i=0;i<10;i++){ ......
  • 第二十二天打卡
    一、问题描述求某一范围内完整的个数。如果一个数等于它的因子之和,则称该数为”完数“。例如,如6的因子为1,2,3,而6=1+2+3,因此6是“完数”。二、设计思路先设计一个数用来记录从0到指定目标的数,然后设s=0;利用循环将之除,从零开始到这个数之间的所有数,得出因子让s累加;最后比较s......
  • 打卡
    1.问题:打印所有不超过n(取n<256)的其平方具有对称性质的数(也称回文数)。2.思路:用变量i从1到256遍历,将其平方转化为一个字符串,利用函数通过双指针判断该字符串是否有对称性从而判断i是否回文数。3.程序流程图: 4.代码实现:#include<iostream>usingnamespacestd;intfact(......
  • C++调用python过程+Anaconda使用arcpy包踩的坑
    C++调python(python文件包含第三方库):工具:VS2017QT5插件PycharmAnaconda1.下载Anaconda,配置一个虚拟环境2.将这个环境里的DLLs和Lib包以及相应py文件,放至C++项目生成.exe文件同级目录下 3.将include和libs放在项目某文件夹下,在VS里添加附加包含目录、附加库目录和附加依赖......
  • Mac 配置 OpenCV C++ 版本
    今天紀錄一下如何在Mac上安裝OpenCVforC++開發環境使用Brew安装,pkgconfig检测,2023.5.17Macx86(Intel),MacM1(Applesilicon)和Ubuntu也適用此筆記用OpenCV4.7.0_4版本做範例1.安装cmake与pkg-config如果您的 Mac 沒有cmake,pkg-config請先......
  • C++进阶学习(三)constexpr关键字、值类别与decltype关键字、lambda表达式
    五、constexpr说明符constexpr说明符声明该变量或函数在编译期进行求值,从而适用于需要编译器常量表达式的地方在变量声明constexpr时,对象或非静态成员函数蕴含const,函数或静态成员变量蕴含inlineconstexpr变量必须立刻被初始化constexprinta=5;//a=6;/*error*/......
  • C++
    复数类的运算#include<iostream>usingnamespacestd;classComplex{public:Complex(doubler=0,doublei=0):real(r),imag(i){}friendComplexoperator+(Complexc1,Complexc2)//重载双目运算符'+'{Complexc3;......