C/C++ 交换两个数,不使用第三个变量, 函数模板来实现
#include <iostream>template<typename T> void exchangeTwoNumber(T &t1, T &t2); void test();int main() {int a = 10, b = 20;double q = 10.1, w = 20.2;char z = 'z', x = 'x';std::cout << "交换前的 a = " << a << ", b = " << b << std::endl;std::cout << "交换前的 q = " << q << ", w = " << w << std::endl;std::cout << "交换前的 z = " << z << ", x = " << x << std::endl;exchangeTwoNumber(a, b);exchangeTwoNumber(q, w);exchangeTwoNumber(z, x);test();std::cout << std::endl;std::cout << std::endl;std::cout << "交换后的 a = " << a << ", b = " << b << std::endl;std::cout << "交换后的 q = " << q << ", w = " << w << std::endl;std::cout << "交换后的 z = " << z << ", z = " << x << std::endl; }template<typename T> void exchangeTwoNumber(T &t1, T &t2) //通用的函数模板 {t1 = t1 + t2;t2 = t1 - t2;t1 = t1 - t2; }void test() //异或的方式,变形成函数模板,编译不通过 {int a = 1, b = 2;a ^= b;b ^= a;a ^= b;std::cout << "...a=" << a << ", b=" << b << std::endl; }
转载于:https://www.cnblogs.com/azbane/p/11261698.html
C/C++ 交换两个数,不使用第三个变量, 函数模板来实现相关推荐
- 交换两个数不引入第三个变量
哎! 这个问题我印象深刻啊,记得当时刚进实验室的时候,负责人问我们大一小学弟的题目,竟然没有人回答上来,现在想想当时得水到什么程度... 应该有很多种方法,我感觉只要是带相反性质的运算都可以,比 ...
- 用按位异或运算符交换两个数,不引入第三个变量
2019独角兽企业重金招聘Python工程师标准>>> 用按位异或运算符交换两个数,不引入第三个变量 void swap(int &a , int &b) { a = ...
- 利用位运算和指针实现的交换两个数的程序
位运算是C语言的一大特色,利用异或运算可以实现交换两个数,原理是一个整数与另外一个数进行两次异或运算仍然是其本身,基本原理用式子表达如下: (1) A ^ A = 0; (2) A = A ^B; ( ...
- c语言用指针两个字母交换,c语言指针基础之用指针交换两个数(代码实例)
用指针交换两个数: void swap(int *p,int *q) { int temp; temp = *p; *p = *q; *q = temp; } int main() { int a = ...
- 使用java交换两个数——CSDN博客
/*** * @Title: test_exchange* @Description: 该方法的主要作用:交换两个数* @param 设定文件 * @return 返回类型:void * @throw ...
- 【java】java 如何不使用第三个变量来交换两个数的值
文章目录 1.概述 2.方案 2.1 算术运算 2.2 位运算 1.概述 今天是一个悲伤的一天,我的悲伤逆流成河.非常非常的悲伤.主要是有这个一个面试题.如何不使用第三个变量来交换两个数的值. 考官说 ...
- 不允许创建临时变量,交换两个数的内容
不允许创建临时变量,交换两个数的内容 #include <stdio.h> int main(int argc, char *argv[]) { int a = 10, b = 100; ...
- C语言拆分一个三位数。以及交换两个数(常规法复习加指针法学习)
给一个三位数,要求拆分出百位十位,个位.然后输出. 以前我们在水仙花那次求水仙花数 提到过经典的取法 我们再次展示一下: #include<stdio.h> int main() {int ...
- C语言实现交换两个数
方法一:最普通方法--建立临时变量 思路分析:建立一个临时变量,通过temp=a,a=b,b=temp来实现交换. 缺点:这只是一种假交换,由于这只是在函数内部临时变量间的交换,所以当函数退出,函数栈 ...
- 【Java语言】交换两个数的数值
package com.njwbhz.path;public class Test18 {/*** @author FairyKunKun* @since 2022/2/16*/public stat ...
最新文章
- OpenCV求逆(伪逆)矩阵函数
- DHCP Server 故障转移实现 (结合H3C交换机)
- “懒惰”Linux 管理员的 10 个关键技巧
- vc 获取月份的天数_「青少年编程」课程:输入年份与月份,得到该月有多少天...
- windows下自制动画层引擎 - 放两个demo
- linux shell ls -l,linux之ls -l|grep ^-|wc -l命令 Shell 中常見的日志統計方法
- codeforces 1073E
- SQL 查询笔记:子查询,分组查询,左连接查询。。。。。
- Mysql8.0安装+navicat for Mysql安装+navicat for Mysql。
- 【SQLServer】将Job运行结果发送电子邮件通知用户
- 在页面加载后执行任务
- HTML5+CSS——个人在线简历
- Bootstrap vs Foundation vs Bulma vs Semantic vs UIkit
- IntelliJ IDEA 社区版使用指南
- 月薪2300深圳流水线女工,逆袭为年薪80万谷歌工程师,又因疫情失业:我绝不轻易认输...
- C#关于日期 月 天数 和一年有多少周及根据某年某周获取时间段的相关计算
- 手撕coreML之yolov2 object detection物体检测(含源代码)
- Rais.vim 配置问题
- 如何解决苹果公司开发者账号重设手机号的问题
- RHEL5 Oracle 11G R2 RAC 静默安装 (三) rdbms安装 dbca 建库
热门文章
- ORM(四)应用.脚本管理工具
- java面向对象语言_Java到底是不是一种纯面向对象语言?
- linux交叉编译无法识别gcc编译器
- 后端技术:Java编程中忽略这些细节,Bug肯定少不了
- 聊聊 HTTPS 和 SSL/TLS 协议
- Visual Studio 2017 的重大功能回顾和针对 .NET 开发者的更新
- word2010添加b5纸张大小_纸张幅面规格尺寸你了解吗?
- oracle數據庫any,Oracle权限集合全集
- socket 网络 编程
- 树形结构数据汇总查询解决方案+优化求助