c++学习:函数模板+实战
目录
函数模板
思考
如果两个参数的类型不一样可以下面这么写
如果有指定返回参数可以下面这么写
实战 找出三个数中最大的一个
函数模板
- 实际上就是建立一个通用函数,其函数返回值类型和形参类型不具体指定,用一个虚拟的类型来代表
- template 是一个关键字 ,表示下面定义的是一个模板
- typename 也是一个关键字,后面跟的T是一个虚拟的数据类型,可以用class来代替
-
其函数返回值数据类型 和 形参的数据类型 不具体指定,用一个虚拟的类型在代表
思考
void _swap(int &a,int &b)
{a = a+b;b=a-b;a=a-b;
}
void _swap(double &a,double &b)
{a = a+b;b=a-b;a=a-b;
}
void _swap(char &a,char &b)
{a = a+b;b=a-b;a=a-b;
}
不断重写swap函数,太过麻烦
我们可以建立一个通用板的函数
template<typename T>
void _swap(T &a,T &b)
{cout<<"template"<<endl;a = a+b;b=a-b;a=a-b;
}int a = 10,b=20;
当_swap(a,b);调用后
会自动生成void _swap(int &a,int &b)
如果两个参数的类型不一样可以下面这么写
template<typename T,typename Tx>
void _swap(T &a,Tx &b)
{cout<<"template"<<endl;a = a+b;b=a-b;a=a-b;
}
如果有指定返回参数可以下面这么写
template<typename T=int>
T _max(T a,T b)
{T c;return a>b?a:b;
}int a = 10,b=20;
_max<int>(a,b);---->int _max(int a,int b)
实战 找出三个数中最大的一个
template<typename T>
T _max(T a,T b,T c)
{return a>b ? (a>c?a:c) : (b>c?b:c);
}cout<<max<int>(10,20,30)<<endl;
如果在类中实现
class Max
{
public:Max();template<typename T>T max(T a,T b,T c);
};如果有max.cpp max.h,那下面模板函数定义一定要放到.h里,上面的也可以放到.h里
template<typename T>
T Max::max(T a,T b,T c)
{return a>b ? (a>c?a:c) : (b>c?b:c);
}调用方法如下Max mya;cout<<mya.max<int>(10,20,30)<<endl;
相关文章:
c++学习:函数模板+实战
目录 函数模板 思考 如果两个参数的类型不一样可以下面这么写 如果有指定返回参数可以下面这么写 实战 找出三个数中最大的一个 函数模板 实际上就是建立一个通用函数,其函数返回值类型和形参类型不具体指定,用一个虚拟的类型来代表template 是一个…...
three.js gltf后处理颜色异常(伽马校正)
效果: 应用了伽马校正,好像效果不明显 代码: <template><div><el-container><el-main><div class"box-card-left"><div id"threejs" style"border: 1px solid red"><…...
面试经典150题(55-58)
leetcode 150道题 计划花两个月时候刷完,今天(第二十四天)完成了4道(55-58)150: 55.(19. 删除链表的倒数第 N 个结点)题目描述: 给你一个链表,删除链表的倒数第 n 个结点ÿ…...
如果一个n位正整数等于其各位数字的n次方之和
❤ 厾罗 如果一个n位正整数等于其各位数字的n次方之和 如果一个n位正整数等于其各位数字的n次方之和,则称该数为阿姆斯特朗数。 例如1^3 5^3 3^3 153。 1000以内的阿姆斯特朗数: 1, 2, 3, 4, 5, 6, 7, 8, 9, 153, 370, 371, 407。 以下代码用于检测用户输…...
solidity显示以太坊美元价格
看过以太坊白皮书的都知道,以太坊比较比特币而言所提升的地方中,我认为最重要的一点就是能够访问外部的数据,这一点在赌博、金融领域应用会很广泛,但是区块链是一个确定的系统,包括里面的所有数值包括交易ID等都是确定…...
ChatGPT学习笔记——大模型基础理论体系
1、ChatGPT的背景与意义 近期,ChatGPT表现出了非常惊艳的语言理解、生成、知识推理能力, 它可以极好的理解用户意图,真正做到多轮沟通,并且回答内容完整、重点清晰、有概括、有条理。 ChatGPT 是继数据库和搜索引擎之后的全新一代的 “知识表示和调用方式”如下表所示。 …...
Termius for Mac/Win:一款功能强大的终端模拟器、SSH 和 SFTP 客户端软件
随着远程工作和云技术的普及,对于高效安全的远程访问和管理服务器变得至关重要。Termius,一款强大且易用的终端模拟器、SSH 和 SFTP 客户端软件,正是满足这一需求的理想选择。 Termius 提供了一站式的解决方案,允许用户通过单一平…...
python如何读取被压缩的图像
读取压缩的图像数据: PackBits 压缩介绍: CCITT T.3 压缩介绍: 读取压缩的图像数据: 在做图像处理的时候,平时都是使用 函数io.imread() 或者是 函数cv2.imread( ) 函数来读取图像数据,很少用PIL.Image…...
华为OD机试 - 寻找最优的路测线路(Java JS Python C)
题目描述 评估一个网络的信号质量,其中一个做法是将网络划分为栅格,然后对每个栅格的信号质量计算。 路测的时候,希望选择一条信号最好的路线(彼此相连的栅格集合)进行演示。 现给出 R 行 C 列的整数数组 Cov,每个单元格的数值 S 即为该栅格的信号质量(已归一化,无单…...
互联网演进历程:从“全球等待”到“全球智慧”的技术革新与商业变革
文章目录 一、导言二、World Wide Wait (全球等待)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 三、World Wide Web (万维网)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 四、World Wide Wisdom (全球智慧)阶段1. 技术角度2. 用户体验3. 企业收益4. 教育影响 五、…...
计算机组成原理——总线
总线特点 1.1. 分时:分时是指同一时刻只允许有一个部件向总线发送信息,若系统中有多个部件,则它们只能分时地向总线发生信息。 1.2. 共享:共享是指总线上可以挂接多个部件,各个部件之间互相交换的信息都可以通过这组线…...
2023.12.27 关于 Redis 数据类型 List 常用命令
目录 List 类型基本概念 List 类型特点 List 操作命令 LPUSH LPUSHX RPUSH RPUSHX LRANGE LPOP RPOP LINDEX LINSERT LREM LTRIM LSET 阻塞版本的命令 阻塞版本 和 非阻塞版本的区别 BLPOP & BRPOP List 类型基本概念 Redis 中的列表(list&am…...
【Web】vulhub-httpd apache解析漏洞复现(1)
目录 ①CVE-2017-15715 ②apache_parsing_vulnerability ①CVE-2017-15715 贴出源码: <?php if(isset($_FILES[file])) {$name basename($_POST[name]);$ext pathinfo($name,PATHINFO_EXTENSION);if(in_array($ext, [php, php3, php4, php5, phtml, pht]))…...
市场复盘总结 20240103
仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整 昨日回顾: 方法一:指标选股 select * from dbo.ResultAll where 入选类型 like %指标选股% and 入选日期=20240103;方法二:趋势选股法 1、最低价持续3日上涨 2、均价…...
Java技术栈 —— Redis的雪崩、穿透与击穿
Java技术栈 —— Redis的雪崩、穿透与击穿 〇、实验的先导条件(NginxJmeter)一、Redis缓存雪崩、缓存穿透、缓存击穿1.1 雪崩1.2 穿透1.3 击穿 二、Redis应用场景——高并发2.1 单机部署的高并发问题与解决(JVM级别锁)2.2 集群部署…...
Scala知识点——App类
我们在代码中一般程序都是是通过main方法进入。但是在scala中提供了一个App类,通过继承可以实现不用显式的调用main方法就能运行。 App类中实现了main方法:...
(vue)增加行,对应行删除
(vue)增加行,对应行删除 效果: 代码: <div v-for"(ele,i) of algorithmList" :key"i"><el-form-item label"模型类型"><el-selectv-model"ele.algorithmId"placeholder"选择模…...
案例088:基于微信小程序的校车购票平台设计与实现
文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 数据库:mysql 5.7 开发软件:eclipse/myeclipse/idea Maven包:Maven3.5.4 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序…...
pytorch集智-1安装与简单使用
1 安装 1.1 简介 pytorch可用gpu加速,也可以不加速。gpu加速是通过cuda来实现,cuda是nvidia推出的一款运算平台,它可以利用gpu提升运算性能。 所以如果要装带加速的pytorch,需要先装cuda,再装pytorch,如…...
『番外篇六』SwiftUI 取得任意视图全局位置的三种方法
概览 在 SwiftUI 开发中,利用描述性代码我们可以很轻松的构建各种丰富多彩的视图。我们可以设置它们的大小、位置、颜色并应用不计其数的修改器。 但是,小伙伴们是否想过在 SwiftUI 中如何获取一个视图的全局位置坐标呢? 在本篇博文中,您将学到如下内容: 概览1. SwiftU…...
pip cache purge 清理下载缓存文件
如上图所示的这个目录是 Python 的包管理工具 pip 用来存储下载过的安装包(wheel 或源码包)的缓存。它的主要作用是在你下次安装同一个包时,可以直接从本地读取,而无需再次从网络下载,从而加快安装速度。 但是…...
Audacity音频编辑完全手册:从零开始制作专业音频作品
Audacity音频编辑完全手册:从零开始制作专业音频作品 【免费下载链接】audacity Audio Editor 项目地址: https://gitcode.com/GitHub_Trending/au/audacity 想制作播客却不知道如何剪辑?需要为视频添加背景音乐但找不到合适的工具?或…...
ChatGPT 2026安全增强套件发布:内置FIPS 140-3认证加密引擎、GDPR实时审计追踪、AI生成内容数字水印——金融/医疗行业合规上线最后窗口期
更多请点击: https://intelliparadigm.com 第一章:ChatGPT 2026安全增强套件整体架构与合规定位 ChatGPT 2026安全增强套件(CESK-2026)是一套面向生成式AI服务的纵深防御框架,专为满足GDPR、中国《生成式人工智能服务…...
AI智能体技能栈构建:基于Claw与Hermes框架的模块化实践
1. 项目概述:构建我的AI智能体技能栈最近在折腾AI智能体(Agent)的开发,特别是围绕Claw和Hermes这两个框架。如果你也对这个领域感兴趣,想打造一个能处理复杂任务、拥有多种技能的智能助手,那么我整理的这个…...
大模型令牌管理工具tokscale:统一计数与成本估算的插件化实践
1. 项目概述:一个面向现代开发者的轻量级令牌管理工具 最近在折腾一些需要处理大量文本数据的项目,比如自动化文档摘要、代码生成或者API调用,一个绕不开的问题就是“令牌”(Token)的管理。无论是使用OpenAI的GPT系列模…...
第十章:C++ 迷你单元测试框架
第十章:C++ 迷你单元测试框架 本章从"写业务"切换到"写工具"。前 9 个案例都是给最终用户看的应用;本案例要做的是给其他程序员用的库——一个百行代码、头文件 only 的单元测试框架(类似 Catch2 的最小骨架)。你将集中练习三件被前 9 个案例覆盖不到位…...
别再折腾Bootloader了!STM32H7内部Flash+QSPI Flash混合运行实战(MDK配置详解)
STM32H7混合存储架构开发实战:告别Bootloader的繁琐时代 在嵌入式开发领域,STM32H7系列凭借其高性能Cortex-M7内核和丰富的外设资源,已成为工业控制、智能设备和图形界面应用的宠儿。然而,传统开发模式中Bootloader与应用程序分离…...
终极Vim分屏体验:vim-airline轻量级状态栏与标签栏全攻略
终极Vim分屏体验:vim-airline轻量级状态栏与标签栏全攻略 【免费下载链接】vim-airline lean & mean status/tabline for vim thats light as air 项目地址: https://gitcode.com/gh_mirrors/vi/vim-airline vim-airline是一款轻量级的Vim状态栏与标签栏…...
MCP Analytics Suite:用自然语言驱动AI数据分析,零代码生成专业报告
1. 项目概述:当AI助手遇上专业数据分析如果你和我一样,日常工作中需要处理大量的业务数据——可能是Shopify的订单报表、Stripe的支付流水,或者是一堆从各个渠道导出的CSV文件——那你一定体会过那种“数据在手,却无从下手”的焦虑…...
从网易招聘看技术人择校与城市选择:一线城市VS武汉,哪里机会更多?
技术人择校与城市选择指南:数据驱动的职业发展决策 站在高考志愿填报或考研择校的十字路口,每个怀揣技术梦想的年轻人都面临着一个关键抉择:是追逐一线城市的产业聚集效应,还是选择武汉这类高校密集但名企较少的城市?这…...
