6行函数扩展为14行的类是必要的
看,这样代码:
元<型名 F,型名 G>
空 并坑2(F&&f,G&&g,坑&们,整 总){
    整 j=0,m;
    对(j;j<们.左;j++)f(j);m=们.右;
    g(j,m);j=m;对(j;j<总;j++)f(j);
}//两边为f,中间为g,一个坑
上面代码,最重要问题是F,G,只要是两个以上外部函数,就可以改造成类了.因为更好看,更直接,其中f,g最好重新命个名,就更易理解了.
元<类 T>构 单坑{
    T 啊;整 总;
    空 坑外(整 j,整 k){对(;j<k;j++)外项(j);}
    空 动作(){
        整 m=坑.左,n=坑.右;
        坑外(0,m);坑内(m,n);坑外(n,总);
    }//坑内有两种表示方法而已.
保护:
    虚 空 外项(整 j){}
    虚 空 坑内(整 i,整 j){}
公:
    单坑(T&a,整 b):们(a),总(b){}
    空 并(){动作();}//这才是接口.
};
改造成上面这个样儿,虽然多了很多行.但更易理解了.我只需要实现外项/坑内,然后就可以调用并()了.凡是多个模板F时,就搞成类,这样更易理解.而且也不容易出错.λ形式,见多了,也不爽.
 函数和类其实是一样的玩意儿.只是类就是个大函数,里面有许多小函数要实现.
 类就是大函数,如果类太小了,就用函数(自由函数).尽量少用λ.自由函数最多一个λ.只要多了,就搞成类,类里面的虚函数,你想要多少就要多少.也方便.
 总之,类就是个大函数.
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号