C++ 中的 template <typename T> 用法 ← 泛型

【语法解析】
● C++ 中的
template <typename T> 用法
template <typename T> 是C++编程语言中的一个模板声明,用于定义一个模板,其中 T 是一个模板参数,可以是任何类型。这种机制
允许程序员编写与类型无关的代码,从而提高了代码的复用性和灵活性。例如:

#include <iostream>
using namespace std;

template <typename T>
T imax(T x, T y) {
    return (x>y)?x:y;
}

int main() {
    string s,t;
    cin>>s>>t;
    cout<<imax(s,t)<<endl;

    int m,n;
    cin>>m>>n;
    cout<<imax(m,n)<<endl;
}

/*
in:
noi csp
8 12

out:
noi
12
*/



 

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、付费专栏及课程。

余额充值