news 2026/9/2 9:26:42

万能交换函数模板解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
万能交换函数模板解析

代码功能解析

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

模板函数定义

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. 类型安全:模板在编译时检查类型一致性,若尝试交换不同类型变量会导致编译错误。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 21:50:34

基于SpringBoot+SpringSecurity+Vue+Redis实现私家菜定制系统

作者主页&#xff1a;编程千纸鹤 作者简介&#xff1a;Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验&#xff0c;被多个学校常年聘为校外企业导师&#xff0c;指导学生毕业设计并参…

作者头像 李华
网站建设 2026/9/2 9:40:39

Redis 安全加固终极指南

一、基础网络防护&#xff1a;关闭 "裸奔模式"1. 限制绑定 IP&#xff08;必选&#xff09;# redis.conf bind 127.0.0.1 # 仅监听本地回环接口 # 如需要远程访问&#xff0c;绑定私有IP而非公网IP # bind 192.168.1.1002. 防火墙规则&#xff08;必选&#xff09;#…

作者头像 李华
网站建设 2026/9/2 21:52:19

豆包AI手机“限量回归”,约谈传闻被澄清:只是行业小范围交流!

12月16日&#xff0c;字节跳动旗下的豆包AI手机在中兴商城重新开启F码候补申请通道&#xff0c;标志着这款因AI功能曾被热议的手机再次限量发售。本次发售与此前的“限量抢购”模式相比&#xff0c;更加谨慎&#xff1a;仅面向此前未能购机的用户开放&#xff0c;已购买、已申领…

作者头像 李华
网站建设 2026/9/2 21:51:10

AI如何帮你优化foreach循环?提升代码效率的5个技巧

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容&#xff1a; 创建一个Python脚本&#xff0c;使用AI分析给定的foreach循环代码片段&#xff0c;自动检测潜在的性能瓶颈&#xff0c;并提供优化建议。功能包括&#xff1a;1) 循环复杂度分析 2)…

作者头像 李华
网站建设 2026/9/2 21:52:39

MySQL架构长啥样?

MySQL服务器总共有四层:连接层,服务层,存储引擎层,文件系统层.连接层:就是控制客户端连接的,MySQL可以开启多个端口号,外部程序都可以进行连接. 连接层会进行权限校验并保存客户端的连接信息,通过池化技术实现线程重用,以及根据具体的配置限制连接数量.通过连接管理器线程处理端…

作者头像 李华