我的两个问题:
-新添加到D中的ImportC
.
-当按ForwardRange
区间与.save()
一起用时,操作可能会意外多次运行
.
import std.stdio;
import std.algorithm;
import std.range
void main() {
size_t 账号数 = 0;
auto r = iota(5)
.map!((i) {
++账号数;
return i;
})
.slide(2);
writefln("%-(%s%)", r);
writeln("账号数: ", 账号数);
}
上述.slide(2)
代表"滑动窗口",本例中用于成对浏览元素.由于元素在0..4
范围内,宽度为2
的浮动
窗口如下显示元素:首先是0和1
,然后是1和2
,等等.输出为:
[0,1][1,2][2,3][3,4]
账户数:8
但是,运行8个总共5个元素的帐号和4个窗口可能会令人惊讶.
我在写.cached()
区间来避免它.通过挤压
它,从保存地方开始
使用:
auto r = iota(5)
.map!((i) {
++账号数;
return i;
})
.cached //这里
.slide(2);