【发布时间】:2021-08-19 09:11:23
【问题描述】:
我会澄清的。我想用下一个在 [min,max] 范围内创建一个 int 变量 属性:
- 它必须支持 int 的“+”(加号)和“-”(减号)操作。
- 任何大于 max 的值都应该循环到 [min + 余数。
- 任何小于 min 的值都应循环到 max - 余数]。
示例:
int a in range (2,7);
a = 3;
a = a + 3; // a is 6 now
a = a + 1; // a is 7 now
a = a + 1; // a is greater than 7 so we loop to 2 a = 2
a = a - 3; // shoul be 2 - 3 = -1 but insted will be 5 (2 - 1 -> 7 - 2 -> 5)
我知道我可以用 mod(又名% 运算符)编写上限。但我认为代码将难以阅读。
或者使用 if 语句。但随后性能会下降。
所以它有一些现代的方式来做到这一点?一些std:: 解决方案?还是很酷的语法?
【问题讨论】: