c++型列.

#include <常用>
元<型名...T>构 型列{};
//如果一个光秃秃';',是不行的,要加个{}.
元<型名...T,型名...P>常式 动 连(型列<T...>,型列<P...>){
    中 型列<T...,P...>();
}//这个应该就完了,不行,不是编译时.
元<整 I,型名 H,型名...U>
常式 动 后列(型列<H,U...>){
    静断(I>=0&&I<型长...(U)+1,"不能越界");
    如 常式(I==0){中 型列<H,U...>();}
    异{
        型列<U...>u;中 后列<I-1,U...>(u);
    }
}//类似`子串(n);`,(0,n)呢?
//前列,代表在3之前,后列,代表在索引之后
元<整 I,型名 H,型名...U>
常式 动 前列(型列<H,U...>){
    静断(I>=0&&I<型长...(U)+1,"不能越界");
    如 常式(I==0){中 型列<>();}
    异{
        型列<U...>r;
        中 连(型列<H>(),前列<I-1,U...>(r));
    }
}//类似`子串(n);`,(0,n)呢?
元<整 M,整 N,型名...T>常式 动 子列(型列<T...>p){
    常式 整 大小=型长...(T);
    静断(M>=0&&M<=N&&N<大小,"不能越界");
    中 后列<M>(前列<N>(p));
}//----(M---N)--
元<型名...T>空 打印(型列<T...>p){
    (类型啊<T,' '>(),...);输出<<行尾;
}//----(M---N)--



空 主(){//使用未定义构,
    用 B=型列<整,浮,极,极,整>;B b;
    打印(b);
    打印(连(b,b));
    动 t=前列<3>(b);
    打印(t);
    打印(后列<4>(b));
    打印(前列<3>(b));
    打印(子列<1,4>(b));
}
posted @ 2020-08-17 09:56  zjh6  阅读(35)  评论(0)    收藏  举报  来源