函数模板的概念和意义

news2025/5/19 8:11:56

问题

C++ 中有几种交换变量的方法?

交换变量的方法

定义宏代码块

  • 优点:代码复用,适合所有类型
  • 缺点:编译器不知道宏的存在,缺少类型检查

定义函数

  • 优点:真正的函数调用,编译器对类型进行检查
  • 缺点:根据类型重复定义函数,无法代码复用

新的需求

C++ 中有没有解决方案集合两种方法的优点?

泛型编程的概念

不考虑具体数据类型的编程方式

Swap 泛型写法中的 T 不是一个具体的数据类型,而是泛指任意的数据类型

C++ 中泛型编程

函数模板

  • 一种特殊的函数可用不同类型进行调用
  • 看起来和普通函数很相似,区别是类型可被参数化

函数模板的语法规则

template 关键字用于声明开始进行泛型编程

typename 关键字用于声明泛指类型

函数模板的使用

自动类型推导调用

具体类型显示调用

小结

函数模板是泛型编程在 C++ 中的应用方式之一

函数模板能够根据实参对参数类型进行推导

函数模板支持显示的指定参数类型

函数模板是 C++ 中重要的代码复用方式

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1028702.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

使用@Builder注解后,该对象 拷贝时出现java.lang.InstantiationException异常报错

报错信息: 2023-09-21T16:02:00.83308:00 ERROR 23220 --- [nio-8080-exec-1] i.global.iot.common.utils.ConvertUtils : convert error java.lang.InstantiationException: io.global.iot.common.modules.dto.ZyOrderDTOat java.base/java.lang.Class.newInsta…

【计算机网络】IP协议第二讲(Mac帧、IP地址、碰撞检测、ARP协议介绍)

IP协议第二讲 1.IP和Mac帧2.碰撞检测2.1介绍2.2如何减少碰撞发生2.3MTU2.4一些补充 3.ARP协议3.1协议介绍3.2报文格式分析 1.IP和Mac帧 IP(Internet Protocol)和MAC(Media Access Control)帧是计算机网络中两个不同层次的概念&am…

前端Vue3+element-plus表单输入框实现Cron表达式校验

页面如下: 本来想手写正则表达式校验,结果发现很麻烦,cron表达式组成如下: 开发使用框架为vue3element-plus,于是选择cron-validator依赖。使用步骤如下: 1、通过npm install cron-validator命令安装&…

如何在Ubuntu系统部署RabbitMQ服务器并公网访问【内网穿透】

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

Linux 中的make/makefile

一:背景 make是一个命令工具,是一个解释makefifile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C的nmake,Linux下GNU的make。可见,mak…

Doxygen在vs code配置

找到这个 就在这里面配置,如果要在原有的下面添加别忘了后面加个逗号,我在他前面加的所以我在上面加了个 //基础设置 “doxdocgen.c.triggerSequence”: “/", “doxdocgen.c.firstLine”: "/", “doxdocgen.c.commentPrefix”: &quo…

瑞芯微:基于RK3568的ocr识别

光学字符识别(Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。亦即将图像中的文字进行识别,并以文本的形式返回。OCR的应用场景 卡片证件识别类:大陆、港澳…

软件测试进大厂,拿高薪,怎么做?看这里!

有些同学大学专业不对口,但有想进大厂想拿高薪心,只要你有想法,那就一定有实现的方法。 俗话说:“世间无难事,只怕有心人”。仔细思索一下,哪家大厂能缺软件测试这一重要职位。相对大学所学专业而言&#…

两数之和 三数之和【基础算法精讲 01】

灵神算法基础算法精讲[01] : 两数之和 三数之和【基础算法精讲 01】_哔哩哔哩_bilibili 167.两数之和 II - 输入有序数组 链接 : 力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 思路 : 采用双指针的思想,因为给出的数组是有序的&…

Delft3D水动力与泥沙运动模拟实践技术应用

水体中泥沙运动是关系到防洪,调水等方面的重要问题,也是水利和水环境领域科研热点之一。水利数值模型,在环境影响评价、防洪规划等方面也有着广泛的应用。荷兰Delft研究所开发的Delft3D模型是世界上最先进的水动力之一,能够运用于…

5款精挑细选的软件,助你事半功倍

​ 在工作的时候,大家都喜欢通过一些好用有效率的工具,来让工作更加快速地完成,今天给大家带来的这5款软件,更是一款比一款还要惊喜! 1.在线文件转换——Aconvert ​ Aconvert 是一款在线文件转换服务,它…

AVR 单片机 调试环境 JTAG MKII

注意 驱动 的厂家: 如果驱动备改变为其他厂家的驱动 就与 AVR Studio7不兼容 保证驱动选择正确是 能够使用硬件调试的关键 如果驱动不对,使用 USB驱动修改工具 修改 比如 UsbDriverTool.exe

“三高”论文完美复现!基于PSO-VMD-MCKD方法的风机轴承微弱故障诊断,实现早期微弱故障诊断,MATLAB代码实现...

声明:对于作者的原创代码,禁止转售倒卖,违者必究! 本期文章思路来自振动测试与诊断期刊的一篇三高论文,点击链接可跳转。https://mp.weixin.qq.com/s/hmmDj5IwpaozeL4F0iI-2g 文章摘要如下: 针对风机滚动轴…

alist windows 命令行版本下载、使用

下载 下载地址 https://github.com/alist-org/alist/releases 文件下载链接 ,直接点击就能下载https://github.com/alist-org/alist/releases/download/v3.27.0/alist-windows-arm64.zip 安装 输入cmd,按enter键,会调出cmd命令行 输入 alis…

内存管理之虚拟内存

本篇遵循内存管理->地址空间->虚拟内存的顺序描述了内存管理、地址空间与虚拟内存见的递进关系,较为详细的介绍了作为在校大学生对于虚拟内存的理解。 内存管理 引入 RAM(内存)是计算机中非常重要的资源,由于造价的昂贵&…

前端对接阿里oss保姆级教程(第二章使用武器)

1.在前端项目下载ali-oss yarn add ali-oss 2.编写上传方法 const OSS require(ali-oss)const client new OSS({// 填写Bucket所在地域。我的杭州的,Region填写为oss-cn-hangzhou。region: oss-cn-hangzhou,//填写组件的密钥accessKeyId: ,accessKeySecret: ,/…

小试GraphQL

之前做的需求,基本都是REST风格,以github提供的api为例,比较二者差异。试用GraphQL,找寻其独到之处 REST REST[1] 一个URI代表一种资源 通过HTTP动词对资源进行操作 以创建一个仓库[2]为例 GET[3], PATCH[4]和 DELETE[5]类似 Gra…

〔023〕Stable Diffusion 之 界面主题 篇

✨ 目录 🎈 系统内置主题🎈 kitchen Theme 主题🎈 Catppuccin Theme 主题🎈 Cozy Nest 主题🎈 系统内置主题 可以通过命令行修改主题,在 webui-user.bat 文件中 set COMMANDLINE_ARGS 参数后面添加 --theme dark 来设置深色主题当然,系统设置里面也自带了很多的主题…

VS2015 设置工程目录不保存 .sdf或.db 文件、 Ipch 文件夹

VS2015 设置工程目录不保存 .sdf或.db 文件、 Ipch 文件夹 sdf或db文件、Ipch文件夹均较大,编译几次就可以达到几十兆。 为了便于工程保持,可以设置这些文件保存于工程之外,但又不影响工程的正常运行。 (PS:这些文件不…

家族小程序开发方案

家族小程序的开发需要考虑到家族成员之间的沟通和互动需求,以及家族文化传承和传承方式等因素。以下是一些开发家族小程序时需要考虑的方面: 家族文化传承:家族小程序需要考虑到家族文化传承的需求,包括家族历史、家族文化、家…