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

万能交换函数模板解析

代码功能解析

该代码实现了一个通用的交换函数模板,能够交换任意相同类型的两个变量值。以下是具体分析:

模板函数定义

template<class T> void Swap(T& x, T& y) { T tmp = x; x = y; y = tmp; }
  • 使用template<class T>定义模板,T为泛型类型参数。
  • 函数参数为两个T类型的引用(T&),允许直接修改原始变量。
  • 通过临时变量tmp完成交换操作,避免值覆盖问题。

主函数测试

int main() { int x1 = 1; int y1 = 2; Swap(x1, y1); cout << x1 << ' ' << y1 << endl; double x2 = 1.1; double y2 = 2.2; Swap(x2, y2); cout << x2 << ' ' << y2 << endl; return 0; }
  • 测试整数交换:x1y1初始值为12,调用Swap后输出2 1
  • 测试浮点数交换:x2y2初始值为1.12.2,调用Swap后输出2.2 1.1

输出结果

2 1 2.2 1.1

关键点说明

  1. 模板实例化:编译器根据调用时的参数类型自动生成Swap<int>Swap<double>的具体实现。
  2. 引用传递:函数参数使用引用,确保直接操作原始变量而非副本。
  3. 类型安全:模板在编译时检查类型一致性,若尝试交换不同类型变量会导致编译错误。
http://www.cnnetsun.cn/news/112843.html

相关文章:

  • Vulkan教程(十二):图形管线,Vulkan 渲染的核心流程
  • “场景化 + 利益前置” 风格拟定标题,从多学科适配、专业级控制、高效协作三大维度重构内容,突出宏智树 AI 绘图功能的差异化优势:
  • 电商网站链接失效危机?快马AI解决方案全解析
  • 为什么网站无法打开-eshukan.com
  • AI如何解决TLS协议版本不匹配问题
  • 查重不是“安检门”,而是你学术表达的“校音器”——宏智树AI免费查重,让引用有回响,原创有回声
  • Git删除过去分支(如删除23年及之前的分支)
  • AB测试:数据驱动决策的科学与艺术
  • 零基础学会用vue-qrcode制作第一个二维码
  • foreach vs for循环:大数据量下的性能对比实验
  • 3.9 Elasticsearch-跨集群搜索(CCS)与跨集群复制(CCR)
  • 用NATS+AI快速构建物联网数据采集原型
  • Excel格式转换异常?新手必看的5分钟解决指南
  • 【智能聊天助手部署教程 (基于 Streamlit + Ollama)】
  • 好写作AI第二大脑:当研究灵感不再碎片化,你的“学术外脑”已上线
  • 好写作AI第二大脑:当研究灵感不再碎片化,你的“学术外挂”已上线
  • 守护代码世界的守门人——软件测试团队心理健康白皮书
  • PinWin窗口置顶工具:提升Windows多任务效率的终极指南
  • Sheet-to-Doc:用Excel数据和Word模板自动生成文档
  • 27岁,转行网络安全,是这辈子最成功的一件事......_27岁开始搞网安好吗
  • 基于 OpenCV C# 的直线卡尺工具源码分享
  • FunASR多说话人识别终极指南:从实战到深度解析
  • SpringAI基于pgvector存储向量
  • 15天零基础打造Android视频录制终极方案:基于FFmpeg的微信级体验完整实现
  • 终极指南:macOS iSCSI启动器完整配置与使用详解
  • 【计算机毕业设计案例】基于SpringBoot+微信小程序的智能在线预约挂号系统基于springboot+微信小程序的智能医疗管理系统设计与实现(程序+文档+讲解+定制)
  • 【计算机毕业设计案例】基于springboot+微信小程序的校园活动管理系统设计与实现在线活动发布、报名管理与学生互动平台(程序+文档+讲解+定制)
  • HMC218BMS8GETR,3.5-8 GHz GaAs MMIC双平衡混频器, 现货库存
  • 直流电机控制仿真:Matlab/Simulink 实现
  • 如何用Charticulator轻松制作专业图表