优化的小函数
文章平均质量分 70
Triose_Stream
动脑子动脑子动脑子
展开
-
交换两个值
交换两个值的函数用得挺多的,这里给出几个版本。指针版:(不用头文件)void My_swap(int *a,int *b){ *a ^= *b; *b ^= *a; *a ^= *b; return ;}引用版:(不用头文件)void My_swap(int &a,int &b){ a ^= b; b ^= a; a ^= b; return ;}万能版:(头文件:原创 2016-01-24 20:05:29 · 388 阅读 · 0 评论 -
尾递归
递归过程中,栈维护了每个函数调用的信息直到函数返回后才释放,这需要占用相当大的空间,尤其是程序中使用了许多递归调用的情况下,除此之外,因为有大量的信息需要保存和回复,因此生成和销毁活跃记录需要耗费一定的时间。如此一来函数调用的开销变得很大时,我们就需要考虑应该采用迭代的方案。幸运的是,我们可以采用一种称为尾递归的特殊递归方式来避免之前提到的缺点。以求4的阶乘为例,普通递归的写法:int fac原创 2016-01-24 20:43:16 · 508 阅读 · 0 评论