我发现了一种非常温和的方法来增加有限的变量,只是:
++i %= range;
不幸的是,这个技巧对递减不起作用,因为 -1 % v == -1
。
我如何在 C++ 中改进它?
最佳答案
要避免负模数行为,您可以先将其设为正数:
i = (i - 1 + range) % range;
但是,如果 range
大于 INT_MAX 的一半,这就不好了。 (或者 i
是什么类型)。
这看起来更简单:
i = (i ? i : range) - 1;
关于c++ - 递减和取模 - 如何在一行代码中递减负值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24092328/