C++模板

模板基础概念

1.定义:模板是C++通用代码机制,让函数/类可以适配多种不同数据类型

2.作用:消除同逻辑不同类型的重复代码,提升代码复用、扩展性

3.分类:分为函数模板、类模板两大类

函数模板

1.语法格式

template 或 template

返回值 函数名(形参列表){

函数体

}

T:类型参数(占位符),编译时根据实参自动替换成具体类型(int/char/自定义类)

2.核心原理:类型替换

编译阶段编译器根据传入的数据类型,自动生成对应类型的函数代码;所有用到原固定类型的位置全部替换为模板参数T

3.示例

通用冒泡排序

4.模板适配自定义类型

前提:自定义类需要重载>运算符,模板排序才能正常比较大小

类模板

1.语法格式

template

class 类名{

T成员变量;

public:

成员函数;

}

2.使用规则

实例化对象时必须显式指定类型:类名<具体类型>对象

编译器根据指定类型,实例化生成对应类型的类代码

3.示例

取最大值类

类型替换通用注意事项

1.模板里所有原本写死的固定类型(int/char),全部统一替换成模板参数T,不能遗漏

2.函数模板:大多自动推导类型,不用手动指定

3.类模板:实例化必须在< >写明具体数据类型,无法自动推导

核心总结

1.模板=类型占位符,一份代码适配多类型

2.函数模板:解决通用算法(排序、交换、最值)

3.类模板:设计通用容器类

4.自定义类接入模板:需要重载运算符满足模板内部比较、运算

相关推荐
梓䈑3 小时前
【算法题攻略】BFS 解决FloodFill 算法、最短路问题、多源BFS 和 拓扑排序
c++·算法·宽度优先
程序喵大人7 小时前
【C++进阶】STL容器与迭代器 - 01 STL 容器先解决元素放在哪里
开发语言·c++·stl
cui_ruicheng8 小时前
Python从入门到实战(十六):多进程编程
开发语言·python
wdfk_prog9 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
晴空了无痕9 小时前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes
神明不懂浪漫9 小时前
【第五章】Java中的继承与多态
java·开发语言
神州世通10 小时前
解密企业通信安全防线:Avaya Aura 三层安全架构深度解析
开发语言·php
AC赳赳老秦11 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
qq_25183645711 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端
野生风长11 小时前
C++入门基础:从命名空间到引用与指针的全面解析
开发语言·c++