迭代月份时使用的圆形数组公式
Circular array formula used in iterating months
目前我发现使用( starting index + size of array + 1 ) % size of array
将使我能够将圆形数组从0索引到N(数组的大小- 1)。
目前我使用这个来循环months
从一个特定的月份(即6 = 7月)。但问题是这种方法也打印0,这不是正确月份(1 - 12)的一部分。我知道我可以用if else语句做到这一点,但如果可能的话,我只是想修改( starting index + size of array + 1 ) % size of array
公式以适应我的需要,如果可能的话。
如果你说的是6 = July
,那么看起来很可能0 = January
和0实际上是一个完全有效的值。
如果你的意思是说7 = July
,那么我实际上建议简单地将数组索引从0-11而不是1-12。当在用户接口和内部接口之间进行更改时,您需要在基于0和1的索引之间进行转换。
如何:
starting index % size of array + 1
如果您有一个增量变量i
并且您执行类似i % N
的操作,您将获得从0到N-1的循环值:0,1,2,…,(N-1),0,1,2,…,(N-1)
因此,如果你想从1开始,你必须在结果上加1:
(i % N) + 1
相关文章:
- 如何以优化的方式同时迭代两个间距不相等的数组
- 为什么我的 scanf() 没有在我的数组上迭代我的 for 循环?
- 迭代器库中的 std::size() 不适用于传递给函数的 C 样式数组
- 自定义 STL 兼容迭代器,用于迭代 2D 数组类的列
- 在C++中使用 for 循环的数组迭代
- 如何使用基于范围的for循环迭代Rapidjson文档(它本身就是一个JSON数组)
- 获取 c++ 中具有恒定长度的数组的迭代器
- 指针到指针 2-D 数组中的迭代
- 如何通过引用对用户定义对象的类型集 (STL) 的数组元素进行增强迭代?
- 为自定义数组实现迭代器
- 数组迭代器不是可取消引用的错误
- 元素级多维数组迭代,与存储顺序无关
- 多维数组迭代效率
- std::不带模板的数组迭代器范围
- 在多线程代码中缓存友好的数组迭代模式
- 用1个循环解释二维数组迭代
- 可变模板形参和元组迭代
- 数组迭代器中的hasNext()方法
- 兼容STL的两个数组迭代器
- 对于循环数组迭代,if循环测试索引是否为真/假,计算结果不正确