#初阶模板

目录

1.泛型编程

2.模板

(1)函数模板

(2)举个栗子(模板的使用)

1.模板的声明有两种形式

2.函数模板的原理

(3)模板参数的匹配原则

(4)类模板

类模板的定义格式

类模板实例化


1.泛型编程

泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。

在没学模板之前,我们要实现一个交换函数,我们可以用函数重载去写不同类型的交换函数,如下

但是这样写其实是存在很多问题的

1. 重载的函数仅仅是类型不同,代码复用率比较低,只要有新类型出现时,就需要用户自己增加对应的函 数

2. 代码的可维护性比较低,一个出错可能所有的重载均出错

于是我们C++里面就有模板可以很好的解决这些问题

2.模板

模板包括函数模板类模板

(1)函数模板

函数模板代表了一个函数家族,该函数模板与类型无关,在使用时被参数化,根据实参类型产生函数的特定 类型版本。

(2)举个栗子(模板的使用)

对上图进行简单分析

1.模板的声明有两种形式

template<class T>  or  template<typename  T>   template是声明模板的关键字

2.函数模板的原理

函数模板是一个蓝图,它本身并不是函数,是编译器用使用产生特定具体类型函数的模具。所以其实模 板就是将本来应该我们做的重复的事情交给了编译器 。在编译器编译阶段,对于模板函数的使用,编译器需要根据传入的实参类型来推演生成对应类型的函数以供 调用。比如:当用double类型使用函数模板时,编译器通过对实参类型的推演,将T确定为double类型,然 后产生一份专门处理double类型的代码,对于字符类型也是如此。

3.注意:在模板中,编译器一般不会进行类型转换操作,因为一旦转化出问题,编译器就需要背黑锅 。所以下面这种就是错误的

当然,这个时候也有办法,通过显示实例化或者强制类型转换解决

(3)模板参数的匹配原则

1. 一个非模板函数可以和一个同名的函数模板同时存在,而且该函数模板还可以被实例化为这个非模板函 数,函数模板只是声明,不是一个具体的函数。

2. 对于非模板函数和同名函数模板,如果其他条件都相同,在调动时会优先调用非模板函数而不会从该模 板产生出一个实例。如果模板可以产生一个具有更好匹配的函数, 那么将选择模板。

(4)类模板
类模板的定义格式

类模板实例化

类模板实例化与函数模板实例化不同,类模板实例化需要在类模板名字后跟<>,然后将实例化的类型放在<> 中即可,类模板名字不是真正的类,而实例化的结果才是真正的类。

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

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

相关文章

AI图像生成-原理

一、图像生成流程总结 【AI绘画】深入理解Stable Diffusion&#xff01;站内首个深入教程&#xff0c;30分钟从原理到模型训练 买不到的课程_哔哩哔哩_bilibili 二、如果只是用comfy UI生成图片 1、找到下面几个文件&#xff0c;把对应模型移动到对应文件夹即可使用 2、选择对…

大学c语言基础很差,能不能学51单片机?会不会很困难?

开始前我分享下我的经历&#xff0c;我刚入行时遇到一个好公司和师父&#xff0c;给了我机会&#xff0c;一年时间从3k薪资涨到18k的&#xff0c; 我师父给了一些51单片机学习方法和资料&#xff0c;让我不断提升自己&#xff0c;感谢帮助过我的人&#xff0c; 如大家和我一样…

python turtle 升国旗

​一、导语 大家好,前段时间,我们画出了五星红旗,今天我们要用Python的Turtle库来绘制一个五星红旗,并让国旗上升,让我们一起来感受编程与艺术的完美结合吧!领略国家的强大!爱祖国,做一个遵纪守法的好公民。 二、效果展示 升国旗 三、开发过程 一、准备工作 首先我们…

OpenAI深夜震撼发布最新模型GPT-4o,送上最快速便捷教程

北京时间5月14日凌晨&#xff0c;有人说OpenAI一夜改变了历史。 在我们的深夜、太平洋时间的上午 10 点&#xff0c;OpenAI 召开春季发布会&#xff0c;公布了最新的GPT-4o模型&#xff0c;o代表Omnimodel&#xff08;全能模型&#xff09;。20多分钟的演示直播&#xff0c;展…

美国加州正测试ChatGPT等生成式AI,在4大部门应用

5月11日&#xff0c;美联社消息&#xff0c;美国加州政府正在测试ChatGPT等生成式AI&#xff0c;应用在税收和收费管理部、交通部、公共卫生部以及卫生与公众服务部4大部门。 测试时间6个月&#xff0c;为其提供技术支持的一共有5家公司&#xff0c;分别是OpenAI、Anthropic、…

成都新增数字产业园,打造生态经济新引擎

成都产业园运营方树莓集团——数字产业生态链建设者。秉持高效、友善、敢为的集团核心文化&#xff0c;有效链接政、产、企、校四个板块&#xff0c;构建了产业生态闭环系统。在成都市区内&#xff0c;已布局了多家数字文创产业园&#xff0c;其中具有代表性的参考国际数字影像…

Linux 第三十一章

&#x1f436;博主主页&#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍&#x1f525;专栏系列&#xff1a;线性代数&#xff0c;C初学者入门训练&#xff0c;题解C&#xff0c;C的使用文章&#xff0c;「初学」C&#xff0c;linux &#x1f525;座右铭&#xff1a;“不要等到什么都没有了…

GRFB-UNet:一种新的多尺度注意力网络,用于铺路分割

不同场景下的带注释的触觉铺装示例: GRFB-UNet网络结构: GRFB模块的结构: 铺路在视障人士的旅行中起着至关重要的作用。因此,识别铺装的形状和位置以支持视障人士的移动性是相当有意义的,而视觉分割技术就适合这项任务。为了有效提高触觉铺装分割的精度和鲁棒性,…

httpsok-v1.11.0支持CDN证书自动部署

&#x1f525;httpsok-v1.11.0支持CDN证书自动部署 介绍 httpsok 是一个便捷的 HTTPS 证书自动续签工具&#xff0c;专为 Nginx 、OpenResty 服务器设计。已服务众多中小企业&#xff0c;稳定、安全、可靠。 一行命令&#xff0c;一分钟轻松搞定SSL证书自动续期 v1.11.0 版…

从“山寨的”MTK芯片发展历程 同类芯片比较基础常识 如何简单识别mtk机型

联发科技&#xff08;MediaTek Inc.简称“联发科” &#xff0c;联发科起家于CD-ROM芯片&#xff0c;直接将DVD内分别承担视频和数字解码功能的两颗芯片整合到了一颗芯片上&#xff0c;并提供相应的软件方案。并一度占据大陆DVD市场60%的芯片供应量&#xff01;他将图像处理、M…

证卡打印机打印头故障的主要原因以及如何预防

爱立识打印头故障的主要原因主要包括以下几点&#xff1a; Evolis 打印机清洁卡 灰尘或碎屑堆积&#xff1a;长时间不清洁打印机导致灰尘或碎屑在机器内积累&#xff0c;可能会导致打印头划伤或堵塞。 使用不洁的卡片&#xff1a;使用不洁的卡片可能会导致灰尘或污垢进入打印机…

气膜建筑为何能够建在楼顶—轻空间

近年来&#xff0c;随着体育设施建设的推进和政策支持&#xff0c;越来越多的体育从业者将目光聚焦到了楼顶&#xff0c;希望通过在楼顶加盖气膜馆来充分利用有限的土地资源。那么&#xff0c;为什么气膜建筑能够建在楼顶呢&#xff1f;轻空间将从气膜建筑的结构特点、安全性、…

Java的VO,BO,PO,DO,DTO

写在前面 本文看下VO&#xff0c;BO&#xff0c;PO&#xff0c;DO&#xff0c;DTO&#xff0c;都是啥&#xff01; 1&#xff1a;正文 先看一张图&#xff0c;看了图就能知道个大概了&#xff1a; 1.1&#xff1a;PO 全称是persistent object&#xff0c;对应数据的表&am…

Linux - make与makefile

文章目录 什么是make和makefile如何使用依赖关系 和 依赖方法伪目标 写个程序-进度条换行和回车的区别 什么是make和makefile make是一个命令 makefile是一个文件 这就是make和makefile的本质 make和 ll , pwd ,su 一样都是命令 makefile和 test &#xff0c; test.c 一样都是…

REACT 在组件之间共享状态

有时&#xff0c;您希望两个组件的状态始终一起变化。要做到这一点&#xff0c;请从他们俩身上删除状态&#xff0c;将其移动到他们最近的共同父级&#xff0c;然后通过道具将其传递给他们。这被称为提升状态&#xff0c;这是编写 React 代码时最常见的事情之一。 举例提升状态…

正念冥想训练内容有哪些?流静冥想

正念冥想训练内容有哪些&#xff1f; “我做不到感恩&#xff0c;总觉得满世界都是欠我的。”同学A这样说。看得出来她的无奈、无力以及无头绪感。 “我无法对父母做出感恩的祝福&#xff0c;从他们那里我感受不到爱&#xff0c;感受不到关怀&#xff0c;体验不到感恩。”同学…

校园电话机对于校园信息化管理非常重要

任何一部校园电话机都有信息办理渠道&#xff0c;并且发挥着重要的效果&#xff0c;能够满意整个机器的更快速运作。然后使学生能够取得一个更好的运用条件&#xff0c;学生在运用产品的过程中&#xff0c;要经过正确的操作环节才能够发挥产品的优胜功能&#xff0c;然后到达一…

TCP连接建立与释放连接——>三次握手和四次挥手

1.三次握手的概述 我们在学网络的概念时&#xff0c;每当讲到TCP都会听到三次握手和四次挥手&#xff0c;一直以来可能都对这个概念模糊不清&#xff0c;那么什么是三次握手和四次挥手呢&#xff1f;简单的举一个例子&#xff0c;如果我们和朋友打游戏&#xff0c;我们要和朋友…

【class2】人工智能初步(自然语言处理)

要实现从评价中提取高频关键词&#xff0c;并判别其正负面性&#xff0c;其实是通过人工智能领域中的一个分支&#xff1a;自然语言处理。 在了解自然语言处理之前&#xff0c;我们先来说说&#xff0c;什么是自然语言&#xff08;Natural Language&#xff09;&#xff1f;自…

哔哩哔哩直播通用榜单系统

榜单系统的定位和业务价值 榜单遍布B站直播相关业务的各个角落&#xff0c;直播打赏、直播间互动、付费玩法、互动玩法、活动、主播PK、语聊房、人气主播排名、高价值用户排名、增值集卡、up主充电等等&#xff0c;在这众多的业务场景中&#xff0c;我们能看到各种各样的榜单。…