c++通过碰碰函数,实现运转编
代码如下:
元<元<整...>类 G,整...K>
空 碰碰(序列<K...>a,序列<>){G<K...>::动作();}
//.4这里基础动作.//最后一步.
元<元<整...>类 G,整...A,整...B,整...I,类 F,类...J>要求(都是<整,F,J...>)
空 碰碰(序列<A...>a,序列<B...>b,F f,序列<I...>,J...i){//.3
(((f==I)&&(碰碰<G>(加尾<I>(a),去头(b),i...),0)),...);
}//N为每次迭代个数.碰碰往下面下疳.
//A序列为保存内容,b序列为每个的N,
元<元<整...>类 G,整...A,整...B,类 F,类...J>
要求(都是<整,F,J...>)
空 碰碰(序列<A...>a,序列<B...>b,F f,J...i){//.2
碰碰<G>(a,b,f,转序<取头(b)>(),i...);
}//N为每次迭代个数.
//N是逐渐拆分的
元<元<整...>类 G,整...N,类...J>
要求(都是<整,J...>)
空 碰碰(序列<N...>a,J...i){//.1
断定(型长等(N,J));
碰碰<G>(序列<>(),a,i...);
}//如何传递上个结果至下个?
下面是测试代码:
元<整...I>构 E{//反正都是运行时.
静 空 动作(){
打印序列(序列<I...>());
}//通过实现这里的E,来实现你的功能.
};
空 主(){//常式是不能通过有i的变量来得到的.
整 i=3,j=2,k=2;
碰碰<E>(序列<4,4,3>(),i,j,k);
//重要的是,提供E.
}
我们,需要的是完成E
的动作.然后如上调用碰碰
函数,就可以了.
.1
为入口,要思考的就是如何传递上个结果至下个
.这就是为何碰碰
的第一个参数为序列<I...>
,由它来保存序列
,要求编译时/运行时
长度相同,因而型长等(N,J)
.
.2
是取第一项,取出序列
与i运行时
中的第一项.运行时用f,i...
来提取.序列直接用函数
提取.他们f与取头(b)
的顺序可以交换.然后注意的是转序<取头(b)>
,开始的时候写成了序列<取头(b)>
,虽然编译通过,但啥都没发生,就是这里应该是转序
.通过转序<N>()
,生成下个函数中的序列<0,1...N-1>()
,然后就可以展开了.
.3
代码:
(((f==I)&&(碰碰<G>(加尾<I>(a),去头(b),i...),0)),...);
前面是比较
,相等的话,就转至后面
函数.后面则是调用
同名函数,继续碰碰
,这里把得到的I
保存至第1个
参数中,f与序列
消掉了,再去掉b
的头,于是,又来到了.2
函数.
然后不断的,.2
与.3
来回碰碰
.最后都消掉了,所有的运行时
整数,都转成编译时的I
了,保存在第1个参数中.
.4
代码,就是最后
出口函数.我们只需要写E
,然后,调用碰碰
函数就可以实现我们想要的功能了.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现