主题:【原创】继续关于swap的讨论 -- 不锈钢破锣
- 共: 💬 22 🌺 5
那为什么现在比较常用的方法还是使用临时变量呢?两个原因,一个是赋值运算比逻辑运算的速度更快;另一个是在编程方面,使用临时变量可读性更高。
更重要的原因,如果a,b是一个复杂的object,后两种做法很可能就不work,因为一般class的design,通常都会实现operator=(),而不一定会实现operator+, operator-,几乎很少会实现XOR operator。
因此第一种做法是上面唯一一个能handle generic case的,同时您也提到了,可读性好,效率也不差(实际上如果a,b是object,效率应该比后两种更好)。
严格说来,后两种做法(不使用临时变量),是违反软件工程的基本原则,因为会使code reusability大幅度降低,也不容易维护。
除了在interview中刻意为难一下Interviewee,实际编程工作中,一般不会用后两种做法。
- 相关回复 上下关系8
【原创】继续关于swap的讨论 3 不锈钢破锣 字1552 2003-11-16 19:28:29
😉有意思的问题 ericxy 字360 2006-11-06 00:51:50
😏呵呵,这个答案有问题 Andor 字513 2006-11-01 12:09:43
🙂【原创】补充一点
😉有重大问题请教----- 1 觉昌安塔克世 字513 2006-10-27 15:38:47
🙂放到寄存器呀。。。 大大的熊 字0 2006-10-28 14:06:49
🙂不管放到什么地方, 觉昌安塔克世 字78 2006-10-28 17:07:59
🙂是这样的,首先寄存器的读取速度远远快于内存。 kavin 字628 2006-10-30 03:28:59