我遇到了一个在我现在编写的代码中非常普遍的问题,即我想要一个整数,该整数只能存在于某个范围内 [start, end)。基本上,我想要做以下事情:
cyclic_int ci(4, 8);
ci = 4;
assert(ci == 4);
ci += 3;
assert(ci == 7);
ci += 2;
assert(ci == 5);
assert(ci == 13);
那应该全部返回 true。基本上,该类会自动为我应用模数(%),并且整数在范围内作为循环整数。我可以自己实现这个类,并重载所有常见运算符,以使其与普通整数良好地配合使用,但似乎有人可能已经制作了一个有用的类。所以我的问题是,是否有一种常见的类似于此的类存在,每个人都在使用,或者我正在考虑错误的方式,并且还有更简单的方法。(我的目标是不必经常考虑对其应用 % 运算符或任何类似的函数)谢谢。
编辑:我也决定自己编写一个,只是出于乐趣:http://github.com/robertmassaioli/wrapping_number