看,这样代码:

<型名 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时,就搞成,这样更易理解.而且也不容易出错.λ形式,见多了,也不爽.
函数和类其实是一样的玩意儿.只是就是个大函数,里面有许多小函数要实现.
类就是大函数,如果类太小了,就用函数(自由函数).尽量少用λ.自由函数最多一个λ.只要多了,就搞成类,类里面的虚函数,你想要多少就要多少.也方便.
总之,类就是个大函数.