gpt4 book ai didi

C++循环展开,边界

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:24 28 4
gpt4 key购买 nike

我有一个要展开的循环:

for(int i = 0; i < N; i++)
do_stuff_for(i);

展开:

for(int i = 0; i < N; i += CHUNK) {
do_stuff_for(i + 0);
do_stuff_for(i + 1);
...
do_stuff_for(i + CHUNK-1);
}

但是,我应该确保我不会用完原来的 N,比如当 N == 14 和 CHUNK == 10 时。我的问题是:什么是最好的/更快的/标准的/最优雅的(你说的它)怎么做?

一个解决方案是:

int i;
for(i = 0; i < (N % CHUNK); i++)
do_stuff_for(i);

for(i; i < N; i += CHUNK) {
// unfolded, for the rest
}

但也许有更好的做法

最佳答案

你可以使用 switch-case。

它叫做 Duff's Device

关于C++循环展开,边界,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8136184/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com