摘要: 通常快速交换两个变量的值可以使用:void swap(int& a,int& b){ a^=b^=a^=b;}但是这样用有个前提,是:a!=b原因很显然,与自身异或会将变量清零。这种用法在汇编语言中最常见xor ax;将累加器清零自己之前一直没注意,今天调试一个排序程序的时候发现的。所以,异或快速交换两个数的值时最好做个判断。void swap(int& a,int& b){ if(a!=b) { a^=b^=a^=b; }} 阅读全文
posted @ 2011-06-12 23:28 Codefor 阅读(603) 评论(0) 推荐(0) 编辑