泛型编程 学习笔记

news2024/9/22 21:19:45
#include "iostream"

using namespace std;

template<typename T>
void Print(T a) {
	cout << a << endl;
}

int main() {
	int a = 5;
	double b = 2.3;
	char c = 'e';
	string d = "sdfasd";

	Print(a);
	Print(b);
	Print(c);
	Print(d);

	return 0;
}

它可以不用Print<类型>(参数);

直接用就能直接推导,从另一种形式来讲,模板是更高级的重载


为什么12行Print会报错呢,因为Print没有参数可以推导T的类型,所以必须显示的指定类型,例如int


#include "iostream"

using namespace std;

template<typename T>
void Print(T a = 123) {
	cout << a << endl;
}

int main() {
	Print<int>();
	Print<string>();

	return 0;
}

当参数有默认值的时候,必须类型匹配才能不输入参数 


#include "iostream"

using namespace std;

template<typename T, int T1 = 23>
void Print(T a = 123) {
	cout << a << " " << T1 << endl;
}

int main() {
	Print<int>();
	Print<int, 45>(44);
	Print<string>("fgsd");

	return 0;
}

作为模板也可以当作参数,一定支持整型、枚举以及指针,其它根据编译器情况可能有不同

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

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

相关文章

关于springboot项目测试文件的目录结构

问题一 我在开发微服务项目的时候&#xff0c;有时候有些微服务是不需要启动类和配置文件的&#xff08;如xuechengService&#xff09;&#xff0c;这时候我们还需要在测试方法中进行测试&#xff0c;这时候我们可以将启动类放在测试类中&#xff0c;注意放在测试类中包的位置…

7-8 韩信点兵

分数 10 全屏浏览题目 切换布局 作者 颜晖 单位 浙大城市学院 在中国数学史上&#xff0c;广泛流传着一个“韩信点兵”的故事&#xff1a;韩信是汉高祖刘邦手下的大将&#xff0c;他英勇善战&#xff0c;智谋超群&#xff0c;为汉朝建立了卓越的功劳。据说韩信的数学水平也非…

Ctfshow web入门 权限维持篇 web670-web679 详细题解 全

CTFshow 权限维持 web670【】 补充一下PHP中单双引号的区别&#xff1a; 单引号和双引号之间最显着的区别在于我们插入字符串和变量时。单引号不插入字符串和变量。**单引号内的内容会按原样打印出来。**在大多数情况下&#xff0c;单引号内没有任何变量或转义序列的编译。 …

论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读

论文《LoRA: Low-Rank Adaptation of Large Language Models》阅读 BackgroundIntroducitonProblem StatementMethodology Δ W \Delta W ΔW 的选择 W W W的选择 总结 今天带来的是由微软Edward Hu等人完成并发表在ICLR 2022上的论文《LoRA: Low-Rank Adaptation of Large Lan…

Java 日期格式(yyyy-MM-dd HH:mm:ss SSS)

常用格式为&#xff1a;yyyy-MM-dd HH:mm:ss 以 2019-12-31 06:07:59:666 时间为例&#xff1a; 字符 含义 Example y&#xff08;小写的y&#xff09; 年 yyyy---->2019 M&#xff08;大写的M&#xff09; 月 MM---->12 d&#xff08;小写的d&#xff09; 一…

使用Jmeter自带recorder代理服务器录制接口脚本

脚本录制 配置线程组 添加代理服务器 端口 和 录制脚本放置位置可根据需要设置 启动录制 点击启动后 弹出创建证书提示&#xff0c;点击OK 这个证书后续需要使用到 然后可见 一个弹窗。 Recorder . 本质是代理服务录制交易控制 可设置对应数据 方便录制脚本的查看 证书配置…

关于es中索引,倒排索引的理解

下面是我查询进行理解的东西 也就是说我们ES中的索引就相当于我们mysql中的数据库表&#xff0c;索引库就相当于我们的数据库&#xff0c;我们按照mapping规则会根据相应的字段&#xff08;index为true默认&#xff09;来创建倒排索引&#xff0c;这个倒排索引就相当于我们索引…

配置覆盖/获取追踪id

12 配置覆盖 提供了配置覆盖功能通过启动命令动态指定服务名&#xff0c;agent只需要部署一份。系统配置 -Dskywalking.agent.service_nameskywalking_mysql探针配置 指定jar包后&#xff0c;继续指定探针配置。系统环境变量覆盖优先级 探针配置>系统配置>系统环境变量&…

ONES × 鲁邦通|打造研发一体化平台,落地组织级流程规范

近日&#xff0c;ONES 签约工业互联网行业领先的解决方案提供商——鲁邦通&#xff0c;助力鲁邦通优化组织级流程规范&#xff0c;落地从需求到交付的全生命周期线上化管理。 依托于 ONES 一站式研发管理平台&#xff0c;鲁邦通在软硬件设计开发、项目管理和精益生产等方面的数…

企微配置回调服务

文章目录 一、简介1、概述2、相关文档地址 二、企微配置消息服务器1、配置消息接收参数2、参数解析3、参数拼接规则 三、代码编写—使用已有库1、代码下载2、代码修改3、服务代码编写 四、测试 一、简介 1、概述 什么时候需要回调服务 在集成企业微信与内部系统时&#xff0…

Spring 6.0官方文档示例(24): replace-method的用法

一、原始bean定义 package cn.edu.tju.study.service.anno.domain;public class MyValueCalculator {public String computeValue(String input) {return "you inputted: " input;}// some other methods... }二、replace bean定义 package cn.edu.tju.study.serv…

Win11中zookeeper的下载与安装

下载步骤 打开浏览器&#xff0c;前往 Apache ZooKeeper 的官方网站&#xff1a;zookeeper官方。在主页上点击"Project"选项&#xff0c;并点击"Release" 点击Download按钮&#xff0c;跳转到下载目录 在下载页面中&#xff0c;选择版本号&#xff0c;并点…

【王道-进程与线程】

#pic_center R 1 R_1 R1​ R 2 R^2 R2 目录 知识框架No.0 引言No.1 进程的概念、组成、特征一、进程的概念二、进程的组成1、PCB进程控制块2、程序段/数据段 三、程序是如何运行的&#xff1f;四、进程的特征五、总结 No.2 进程的状态转换和组织一、进程的状态1、创建态、就绪态…

Linux网络编程:Socket套接字编程(Server服务器 Client客户端)

文章目录&#xff1a; 一&#xff1a;定义和流程分析 1.定义 2.流程分析 3.网络字节序 二&#xff1a;相关函数 IP地址转换函数inet_pton inet_ntop&#xff08;本地字节序 网络字节序&#xff09; socket函数(创建一个套接字) bind函数(给socket绑定一个服务器地址结…

【数据库系统】--【5】DBMS查询处理

DBMS查询处理 01查询处理概述02查询编译词法、语法分析语义分析查询重写查询优化 03查询执行算法04查询执行模型 01查询处理概述 02查询编译 词法、语法分析 语义分析 查询重写 查询优化 03查询执行算法 04查询执行模型 小结 ● 查询处理概述 ● 查询编译 词法、语法分析语义分…

解决:(error) ERR unknown command shutdow,with args beginning with

目录 一、遇到问题 二、出现问题的原因 三、解决办法 一、遇到问题 要解决连接redis闪退的问题&#xff0c;按照许多的方式去进行都没有成功&#xff0c;在尝试使用了以下的命名去尝试时候&#xff0c;发现了这个问题。 二、出现问题的原因 这是一个粗心大意导致的错误&am…

远程线程注入(简单样例以及原理)

远程线程注入(简单样例以及原理) 注入的目标是将我们的代码注入到目标进程的地址空间中 注入通常可以根据注入的内容分为两种类型&#xff1a; shellcode注入 &#xff1a;这种注入是将我们的代码直接注入到目标内存中&#xff0c;这就要保证我们的代码在贴到其他地址上后仍…

7-2 求矩阵各行元素之和

分数 15 全屏浏览题目 切换布局 作者 C课程组 单位 浙江大学 本题要求编写程序&#xff0c;求一个给定的mn矩阵各行元素之和。 输入格式&#xff1a; 输入第一行给出两个正整数m和n&#xff08;1≤m,n≤6&#xff09;。随后m行&#xff0c;每行给出n个整数&#xff0c;其间…

You don‘t have an extension for debugging html.

flutter在vscode点 菜单栏的run 下的 start debugging后出现下面的错误。 点到main.dart文件&#xff0c;再执行运行按钮。

linux安装mysql错误处理

linux下mysql的安装与使用 linux安装mysql可有三种方式&#xff1a; 1、yum安装 2、源码安装 3、glibc安装 安装wget yum install -y wget https://blog.csdn.net/darendu/article/details/89874564?utm_sourceapp Linux上error while loading shared libraries问题解决方法…