Noy*_*oya 2 arrays iteration design-patterns
我想知道是否有可能从其任何元素开始迭代所有数组元素而无需对数组进行预排序.
为了更清楚,假设我有5个元素的数组:
0 1 2 3 4
我想从他们的索引之一开始读取所有元素,如:
2 3 4 0 1
要么
4 0 1 2 3
我们的想法是以这种方式保持元素顺序:
n,n + 1,...,end,start,...,n-1
一种解决方案可能是(伪代码):
int startElement;
int value;
for(startElement;startElement<array.count;startElement++){
value = array[startElement];
}
for(int n = 0; n<startElement;n++){
value = array[n];
}
Run Code Online (Sandbox Code Playgroud)
但我不知道是否有更好的.有什么建议?
tza*_*man 13
使用模数运算符:
int start = 3;
for (int i = 0; i < count; i++)
{
value = array[(start + i) % count];
}
Run Code Online (Sandbox Code Playgroud)