C++中的条件传送代码
摘要:条件传送代码-这种代码先计算一个条件操作的两种结果,然后再条件从而选其中一个-条件传送代码匹配了现代处理器的性能特征(因为现代处理器是流水线)void minmax2(int a[],int b[], int n){ int i ; for(i = 0;i < n; i++) { ...
阅读全文
优化:代码移动code motion
摘要:代码移动code motion-一种常见的优化-这种优化是把(一种需要执行多次但计算结果不会改变)的计算移到前面-这种优化一般需要程序员自行移动代码,不能依靠编译器(编译器担心会有副作用)看看代码就明白了void combine(vec_ptr v, data_t *dest){ long i...
阅读全文
妨碍优化
摘要:妨碍优化编译器安全优化时,会非常小心,编译器会保证在所有可能的情况下都安全才进行优化第一个妨碍优化的例子就是当指针指向同一个位置考虑下,如果xp和yp指向同一个位置,情况会怎样?//假设*xp 和 *yp 都 = 1(同一个位置)void twiddle1(int *xp,int *yp){ *xp...
阅读全文
函数对象
摘要:函数对象-使程序设计更加灵活-能实现函数的inline调用,使性能加速如果一个对象具有了某个函数的功能,我们称为函数对象如何使对象具有函数功能呢?只要为这个对象的操作符()进行重载就行了换句话说函数对象就是一个实现了operator()的类函数对象可以储存数据,可以在函数时作为返回类型废话不多说,看...
阅读全文
用C++写出hanoi
摘要:汉诺塔(港台:河內塔)是根据一个传说形成的數學问题有三根杆子A,B,C。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:-每次只能移动一个圆盘-大的盘不能叠在小的盘上面最早發明這個問題的人是法國數學家愛德華.盧卡斯傳說印度某間寺院有三根柱子,上串64个金盤...
阅读全文