C++ 中模板函数应用

1、编写一个模板函数Input,要求输入一个非负数,并负责验证所输入的数是否真的大于或等于0,如果不是,它将告诉该输入非法,需要重新输入一个数。在函数非 成功退出之前,应给三次机会。如果输入成功,函数应当把所输入的数作为引用参数返回。 输入成功时,函数应返回true, 否则返回false。

#include <iostream>

using namespace std;

template<typename T>
bool input(T &testNumber);

int main()
{
    int testNumber;
    int i=0;
    cout << "please input the number  " ;
    cin >> testNumber;
    i++;
    
    while(!(input(testNumber))){
        if(i >= 3){
            cout << "three times already, bye bye~" << endl;
            break;
        }
        
        cout << "please input again  " ;
        cin >> testNumber;
        i ++;
    }
}

template<typename T>
bool input(T &testNumber)
{
    if (testNumber < 0)
    {
        cout << "input is illegal  " << endl;
        return false;
    }
    else
    {
        cout << "OK  " << endl;
        return true;
    }
}

2、编写一个模板函数,用来测试数组中的元素是否按升序排列(即a [ i ]≤a [ i + 1 ] ,其中0≤ i<n - 1)。如果不是,函数应返回false否则应返回true。

#include <iostream>

using namespace std;

template <typename T>
bool testOrder(T (&arr)[10]);

int main()
{
    int numberArray[] = {0, 1, 2, 3, 0, 5, 6, 7, 8, 9};
    bool flag = testOrder(numberArray);
    cout << flag;
    
    return 0;
}

template <typename T>
bool testOrder(T (&numberArray)[10])
{
    for (int i = 0; i < 10; i++)
    {
        if(numberArray[i] >= numberArray[i + 1]){
            return false;
        }
    }

    return true;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值