C++学习笔记-函数模版与类模版

模板是C++语言中的一个强大特性,它允许程序员编写通用代码以处理不同数据类型的数据,从而实现代码的重用和泛化。

一、C++模板的基本概念

C++模板是一种泛型编程工具,通过参数化类型来编写通用的函数和类。模板的核心思想是允许程序员编写一次代码,然后通过将不同的数据类型作为参数来创建多个具体的实例。这种机制大大提高了代码的重用性和泛化程度。

1. 模板的分类

C++模板主要分为两种:函数模板和类模板。

函数模板:允许编写一般性的函数,其中某些参数的类型被视为模板参数,可以在函数调用时指定。例如,可以编写通用的排序函数,不必为每种数据类型都编写不同的排序算法。
类模板:允许创建通用的类,其中一些成员或成员函数的类型被视为模板参数。这使得可以创建通用的容器类(如向量、链表等)或数据结构。

2. 模板参数

模板参数可以是类型参数或非类型参数。

类型参数:允许指定不同的数据类型,这是最常见的模板参数类型。
非类型参数:允许指定常量或值,以定制化模板的行为。非类型参数可以是整数、枚举、指针等。
二、C++模板的使用

  1. 函数模板
    函数模板允许编写与数据类型无关的函数。其基本语法如下:
template<typename T>  
T functionName(T param1, T param2) {
     
    // 函数实现  
}

例如,编写一个通用的交换函数模板:

template<typename T>  
void swap(T& a, T& b) {
     
    T temp = a;  
    a = b;  
    b = temp;  
}

在使用时,编译器会根据传递的参数类型自动推导T的类型。

#include <iostream>  
  
template<typename T>  
T max(T a, T b) {
     
    return (a > b) ? a : b;  
}  
  
int main() {
     
    std
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

>_<!

码字不易,如有帮助,欢迎鼓励

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值