C/C++ Swap without using extra variable
2015-12-10 21:56
190 查看
本系列文章由 @YhL_Leo 出品,转载请注明出处。
文章链接: /article/3664491.html
对于可以线性运算的变量,交换两个变量值的做法,通常我们是这样的:
稍作变化,就可以不通过临时变量实现:
文章链接: /article/3664491.html
对于可以线性运算的变量,交换两个变量值的做法,通常我们是这样的:
[code]/** * Swap the parameters with a temp variable. * @param a The first parameter. * @param a The second parameter. */ void swap(int& a, int& b) { int temp = a; a = b; b = temp; }
稍作变化,就可以不通过临时变量实现:
[code]/** * Swap the parameters without a temp variable. * Warning! Susceptible to overflow/underflow. * @param a The first parameter. * @param a The second parameter. */ void swapNoTemp(int& a, int& b) { a -= b; // a = a - b b += a; // b = b + (a - b), b gets the original value of a a = (b - a); // a = a - (a - b), a gets the original value of b }
相关文章推荐
- C++面试1(简答题)
- 实战c++中的string系列--string的替换、查找(一些与路径相关的操作)
- 实战c++中的string系列--string的替换、查找(一些与路径相关的操作)
- c语言—stdarg宏(函数可变参数实现)
- 【日记-C语言】今天看书,吸LFG
- c++实训报告之高校工资管理系统
- Arduino 平台与C语言程序设计-week4-Arduino Programs-Lesson1
- C/C++ Quick Sort Algorithm
- C/C++ Quick Sort Algorithm
- c++设计模式(4)------建造者模式
- 一起talk C栗子吧(第七十三回:C语言实例--DIY pwd命令)
- c语言指针
- C++中的萃取机制(traits)
- 对象池 c++11
- 条款01:视C++为一个语言联邦
- c++实现 斐波那契数
- 浅谈C++友元
- C++ using关键字作用总结
- effective c++学习笔记3
- 棋盘覆盖问题、半数集问题算法解析-C语言