我目前正在编写的代码中有一个很常见的问题,即我希望有一个整数,该整数只能存在于范围为 [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