当前位置: 首页 > news >正文

c++中模板的注意事项

1.  模板定义时,<>中的虚拟类型参数不能为空。(因为我们使用模板就是希望使用模拟类型代替其它的类型,如果我们不定义就没有意义了)

2.  无论是定义函数模板还是类模板,其实template定义与后面使用虚拟类型的类或者函数,是一条语句,也就是说,中间不能有;,但是可以写在一行,也可以分行写。

// 写在一行
template <typename T, typename T2> void printS(T& a, T2& b) {cout << a << endl;cout << b << endl;
}// 分行写
template <typename T, typename T2> 
void printS(T& a, T2& b) {cout << a << endl;cout << b << endl;
}

3.  所以说template其实就是说明下面的函数或者类要使用模板了,这也说明,如果一个函数中想要使用模板,就需要在前面使用template定义。(并不是只在代码中定义一次就行,只要使用就得定义)

4.  在函数模板中说道,函数的声明和函数的定义的前面都需要加template定义,此时我们在<>中的虚拟类型名应该保持一致。(因为表示的是同一个函数,自然相应的类型也应该相同了)

5. <> 中用于声明类型和传入类型,()中用于声明参数和传入参数。我们在使用模板时,就像传函数实参一样,使用<>传入类型实参,实例化声明的类型。

当然在调用函数模板的时候,编译器可以通过函数的参数(自动)实例化虚拟类型。 前提是,参数使用了对应的虚拟类型才行,否则还是得使用<>显示的传入

6. 如果子类和父类都是模板类,那么我们在子类继承父类的时候,可以使用子类的虚拟类型来实例化父类中的类型参数。

7.  我们在<>中定义虚拟类型的时候,也可以使用class,当然使用typename更好。 

 例如:  template <typename T>template <class T>都是可以的。

那么是为什么呢?   因为:  模板是c++后来提出的,最开始就使用了class来作为定义虚拟类型,后来为了和类区分,就新增了typename关键字来定义,所以两种都支持但是建议使用typename。

8.  我们将使用了模板的函数作为友元时,在调用函数时建议进行显示调用(调用时使用<>传入类型)

相关文章:

c++中模板的注意事项

1. 模板定义时&#xff0c;<>中的虚拟类型参数不能为空。(因为我们使用模板就是希望使用模拟类型代替其它的类型&#xff0c;如果我们不定义就没有意义了) 2. 无论是定义函数模板还是类模板&#xff0c;其实template定义与后面使用虚拟类型的类或者函数&#xff0c;是…...

【代码随想录python笔记整理】第十三课 · 链表的基础操作 1

前言:本笔记仅仅只是对内容的整理和自行消化,并不是完整内容,如有侵权,联系立删。 一、链表 在之前的学习中,我们接触到了字符串和数组(列表)这两种结构,它们具有着以下的共同点:1、元素按照一定的顺序来排列。2、可以通过索引来访问数组中的元素和字符串中的字符。由此,…...

JAVA工程师面试专题-《Mysql》篇

目录 一、基础 1、mysql可以使用多少列创建索引&#xff1f; 2、mysql常用的存储引擎有哪些 3、MySQL 存储引擎&#xff0c;两者区别 4、mysql默认的隔离级别 5、数据库三范式 6、drop、delete 与 truncate 区别&#xff1f; 7、IN与EXISTS的区别 二、索引 1、索引及索…...

@ 代码随想录算法训练营第4周(C语言)|Day22(二叉树)

代码随想录算法训练营第4周&#xff08;C语言&#xff09;|Day22&#xff08;二叉树&#xff09; Day22、二叉树&#xff08;包含题目 ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点 &#xff09; 235. 二叉搜索树的最近公…...

福特锐界2021plus 汽车保养手册

福特锐界2021plus汽车保养手册两页&#xff0c;零部件保养要求&#xff0c;电子版放这里方便查询&#xff1a;...

c++进阶路线

学完C后的进阶路线-初学者勿入【程序员Rock】_哔哩哔哩_bilibili 1.系统训练代码阅读能力 代码阅读工具&#xff1a; 1&#xff09;.Source Insight(阅读大型源码) 2&#xff09;.understand(整体代码模块关系构建) 3&#xff09;.SOURCETRAIL 代码阅读能力--千行级 嵌入…...

python中的类与对象(2)

目录 一. 类的基本语法 二. 类属性的应用场景 三. 类与类之间的依赖关系 &#xff08;1&#xff09;依赖关系 &#xff08;2&#xff09;关联关系 &#xff08;3&#xff09;组合关系 四. 类的继承 一. 类的基本语法 先看一段最简单的代码&#xff1a; class Dog():d_…...

Android横竖屏切换configChanges=“screenSize|orientation“避免activity销毁重建,Kotlin

Android横竖屏切换configChanges"screenSize|orientation"避免activity销毁重建&#xff0c;Kotlin 如果不在Androidmanifest.xml设置activity的&#xff1a; android:configChanges"screenSize|orientation" 那么&#xff0c;每次横竖屏切换activity都会…...

【C语言基础】:操作符详解(二)

文章目录 操作符详解一、上期扩展二、单目操作符三、逗号表达式四、下标访问[]、 函数调用()五、结构成员访问操作符六、操作符的属性&#xff1a;优先级、结合性1. 优先级2. 结合性 操作符详解 上期回顾&#xff1a;【C语言基础】&#xff1a;操作符详解(一) 一、上期扩展 …...

模型训练基本结构

project_name/ │ ├── data/ │ ├── raw/ # 存放原始数据 │ ├── processed/ # 存放预处理后的数据 │ └── splits/ # 存放数据集划分&#xff08;训练集、验证集、测试集等&#xff09; │ ├── noteboo…...

Redis 数据结构详解:底层实现与高效使用场景

String&#xff08;字符串&#xff09; 底层实现细节&#xff1a; 动态字符串&#xff08;SDS&#xff09;: SDS相比于C语言的原生字符串&#xff0c;提供了自动内存管理和预分配机制。当字符串长度增加时&#xff0c;SDS会预先分配额外的空间&#xff0c;以减少内存重新分配…...

Vue2:router-link的replace属性

一、情景说明 我们在用浏览器访问网站的时候 知道浏览器会记录访问的历史路径&#xff0c;从而&#xff0c;可以退回到之前的页面 那么&#xff0c;Vue项目中的路由组件&#xff0c;通过router-link跳转&#xff0c;也是可以退回的 这里&#xff0c;我们用replace来屏蔽退回的…...

普中51单片机(DS18B20温度传感器)

DS18B20温度传感器原理 内部结构 64位(激)光刻只读存储器 光刻ROM中的64位序列号是出厂前被光刻好的&#xff0c;它可以看作是该DS18B20的地址序列号。64位光刻ROM的排列是&#xff1a;开始8位&#xff08;28H&#xff09;是产品类型标号&#xff0c;接着的48位是该DS18B20自身…...

2.23C语言学习

P1480 A/B Problem 高精度数除以非高精度数 #include<bits/stdc.h> long long b[66660],c[66660],sum0; char a[66660]; int n; int main(){scanf("%s",a);scanf("%d",&n);int lenstrlen(a);for(int i1;i<len;i){b[i]a[i-1]-0;}for(int i1;…...

origin/master master

这里实际上有三件事&#xff1a;origin master是两件事&#xff0c;origin/master一件事。共计三件事。 两个分支&#xff1a; master 是一个本地分支 origin/master是远程分支&#xff08;它是名为“origin” 的远程分支的本地副本&#xff0c;名为“master”&#xff09; 一个…...

【数据结构】时间复杂度与空间复杂度

目录 时间复杂度 空间复杂度 时间复杂度 算法的时间复杂度并不是指一个代码运行时间的快慢&#xff0c;因为在不同机器上运行的时间肯定不同&#xff0c;因此算法的时间复杂度指的是基本操作的执行次数&#xff0c;他是一个数学意义上的函数。这个函数并不是C语言中那种函数&…...

分别使用js与jquery写 单击按钮时出现内容 点击删除按钮不会再向下出现

HTML部分 <body><button id"btn">单击我</button><button id"delAll">删除所有事件</button><div id"test"></div> </bady>jQuery代码 <script type"text/JavaScript" src"…...

【Git】Git命令的学习与总结

本文实践于 Learn Git Branching 这个有趣的 Git 学习网站。在该网站&#xff0c;可以使用 show command 命令展示所有可用命令。你也可以直接访问网站的sandbox&#xff0c;自由发挥。 一、本地篇 基础篇 git commit git commit将暂存区&#xff08;staging area&#xff…...

前端工程化面试题 | 18.精选前端工程化高频面试题

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…...

大公司的工程师是怎么废掉的...

大家好&#xff0c;我是砖一。 此文作者以嵌入式工程师为基本视角&#xff0c;细说了从初阶到高阶工程师的资质需求&#xff0c;并提示工程师职业道路上的陷阱。可供参考。 一&#xff0c;基础知识 一个嵌入式工程师&#xff0c;很多都是从51单片机或者STM32单片机开始&…...

将yolov8权重文件转为onnx格式并在c#中使用

yolo模型转ONNX 在yolov8中&#xff0c;我们将训练结果的.pt权重文件转换为onnx格式只需要使用ultralytics库中的YOLO类&#xff0c;使用pip安装ultralytics库&#xff0c;然后执行下面python代码 from ultralytics import YOLO# 加载YOLOv8模型 model YOLO("best.pt&q…...

在Spring Boot启动时禁止自动配置数据源相关的组件、@SpringBootApplication

一、SpringBootApplication(exclude {DataSourceAutoConfiguration.class})注解 在Spring Boot启动时禁止自动配置数据源相关的组件。 SpringBootApplication(exclude {DataSourceAutoConfiguration.class})注解的使用案例 这个注解通常应该写在微服务项目的主启动类上&…...

程序人生:不积跬步无以致千里

程序人生 癸卯年冬月&#xff0c;往渭南韩城&#xff0c;拜访司马迁祠。入门攀爬而上&#xff0c;至人有困乏之时&#xff0c;抬头现&#xff1a;高山仰止。归路下山&#xff0c;始现三官洞&#xff0c;遥想西汉时三官洞&#xff0c;出口处刻意再拜别&#xff1a;高山仰止。泪…...

通过二叉树例题深入理解递归问题

目录 引入&#xff1a; 例1&#xff1a;二叉树的前序遍历&#xff1a; 例2&#xff1a; N叉树的前序遍历&#xff1a; 例3&#xff1a;二叉树的最大深度&#xff1a; 例4&#xff1a;二叉树的最小深度 例5&#xff1a;N叉树的最大深度&#xff1a; 例6&#xff1a;左叶子…...

【Android 协程常见用法】

我们这里只讲解一下&#xff0c;协程在Android项目中常见用法&#xff0c;原理知识不在进行说明了。 依赖 lifecycleScope只能在Activity、Fragment中使用&#xff0c;会绑定Activity和Fragment的生命周期。依赖库&#xff1a; implementation androidx.lifecycle:lifecycle…...

python 进程笔记一 (概念+示例代码)

1. 进程的概念 进程是资源分配的最小单位&#xff0c;也是线程的容器&#xff0c;线程&#xff08;python 线程 &#xff08;概念示例代码&#xff09;&#xff09;是CPU调度的基本单位&#xff0c;一个进程包括多个线程。 程序&#xff1a;例如xxx.py是一个程序 进程&#xf…...

各中间件数据库默认访问端口总结

说明 在生态丰富的开发环境下&#xff0c;我们常常需要接触很多中间件产品&#xff0c;中间件默认的连接端口以及可视化ui访问端口也时不时的需要用到&#xff0c;这里循序渐进做好登记&#xff0c;以备查阅&#xff01; 中间件/数据库名称默认端口管理台端口默认账号密码rabbi…...

鲲鹏arm64架构下安装KubeSphere

鲲鹏arm64架构下安装KubeSphere 官方参考文档: https://kubesphere.io/zh/docs/quick-start/minimal-kubesphere-on-k8s/ 在Kubernetes基础上最小化安装 KubeSphere 前提条件 官方参考文档: https://kubesphere.io/zh/docs/installing-on-kubernetes/introduction/prerequi…...

python 函数-02-返回值注释格式

01 函数返回值 1&#xff09;python中函数可以没有返回值&#xff0c;也可以有通过return的方式 – 【特殊性&#xff0c;区别于java c#等】 2&#xff09;返回值可以是一个或者多个&#xff0c;多个时通过逗号隔开 – 【特殊性&#xff0c;区别于java c#等】 3&#xff09;多…...

【前端素材】推荐优质后台管理系统Upcube平台模板(附源码)

一、需求分析 后台管理系统在多个层次上提供了丰富的功能和细致的管理手段&#xff0c;帮助管理员轻松管理和控制系统的各个方面。其灵活性和可扩展性使得后台管理系统成为各种网站、应用程序和系统不可或缺的管理工具。 当我们从多个层次来详细分析后台管理系统时&#xff0…...

网站建设中的技术问题/余姚网站如何进行优化

%{ 1.这就是传说中的多行注释 2.成功&#xff01; %} 注意是大括号哟...

网站在线聊天源代码/怎么seo快速排名

信息技术教学计划及学情分析信息技术教学计划及学情分析以计算机技术、微电子技术和通信技术为特征的现代信息技术,在社会各个领域得到了广泛应用,并且逐渐改变着人们的生活方式、工作与学习方式.开展以提升学生信息素养和信息技术操作能力为主要目标的信息技术教育,正是全面推…...

网站建设服务哪个便宜/杭州网站建设

写在前面的话我这里&#xff0c;三个节点的bigdata集群。分别为master、slave1和slave2。1、Phoenix的下载我的HBase版本是hbase-0.98.19。下载地址&#xff1a;注意&#xff1a;(hbase的版本一定要与phoenix的版本保持一致&#xff0c;否则运行报错,hbase-0.99没有相关的版本下…...

单招网站开发/企业网站建设公司

eclipse插件的安装方法大体有以下三种:...

模板式网站/重庆seo网站建设

最近做的一个项目是基于 vue AntDesign 的。由于项目要求&#xff0c;需要在 Table 组件的行内点右键的时候弹出菜单。在线演示地址及最终效果图如下&#xff1a;在线演示地址>>首先新建一个Table组件的实例&#xff1a;:columns"columns":rowKey"record…...

做地坪网站/电商培训机构排名

官网链接 http://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#about-this-document 要求 有NVDIA的显卡硬件&#xff08;官网上有需要满足的条件&#xff09; 下载 之前看网上的cuda安装好像都是需要安装驱动、SDK、Toolkit的&#xff0c…...