template<typename T>简单用法

template<typename T>的作用是使函数适用于不同的输入类型。

template<typename T>
void print_num(const T num){  
    cout.setf(ios::showpoint); 
    cout<<num<<endl;
}

int main () {
    int num1 = 1;
    print_num(num1);
    double num2 = 1.0;
    print_num(num2);
    long long num3 = 1e10;
    print_num(num3);
	return 0;
}
template<typename T0> struct NUM
{
    NUM(const vector<T0>& vec):num1(vec[0]),num2(vec[1]){}
    template<typename T>
    void print_sum(const T& num){  
        cout.setf(ios::showpoint); 
        cout<<num+num1+num2<<endl;
    }
    const T0 num1;
    const T0 num2;
};


int main () {
    vector<double> r1 = {1.0,2.0};
    int n = 3;
    NUM<double> num(r1);
    num.print_sum(n);
	return 0;
}
  • 12
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
template <typename T> 是 C++ 中的模板语法,用于声明一个泛型函数或类。它的作用是使函数或类能够接受任何类型的参数,从而增加代码的复用性和灵活性。 下面是一个使用 template <typename T> 声明的泛型函数的例子: ```cpp template <typename T> T max(T a, T b) { return a > b ? a : b; } ``` 在这个例子中,函数 max 接受两个参数,类型都为 T,T 是一个未知的类型。当我们调用 max 函数时,编译器会根据传入的实际参数类型来推导出 T 的具体类型,然后将该类型替换函数体中的 T,最终生成一个具体的函数。 例如,以下代码调用 max 函数时,T 的具体类型被推导为 int: ```cpp int a = 1, b = 2; int result = max(a, b); // result = 2 ``` 除了函数,我们同样可以使用 template <typename T> 声明一个泛型类。例如: ```cpp template <typename T> class Stack { public: void push(T element); T pop(); private: vector<T> elements; }; ``` 在这个例子中,类 Stack 是一个泛型类,它可以存储任何类型的元素。在 push 和 pop 方法中,我们都使用了类型 T,这意味着 Stack 类能够存储任何类型的元素。 使用泛型函数和类时,我们需要在调用时指定具体的类型。例如: ```cpp Stack<int> intStack; intStack.push(1); intStack.push(2); intStack.pop(); // 返回 2 Stack<string> stringStack; stringStack.push("hello"); stringStack.push("world"); stringStack.pop(); // 返回 "world" ``` 在这个例子中,我们分别创建了一个存储 int 和 string 类型的 Stack 对象,并向它们中添加了元素。由于 Stack 类是泛型类,因此我们需要在创建对象时指定具体的类型。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值