如何实现包括负值的循环索引?

时间:2016-07-11 01:53:22

标签: c++ arrays c++11

如何实施包括负值的循环索引?
例如

  a    b    c    d
...
[-8] [-7] [-6] [-5]
[-4] [-3] [-2] [-1]
[ 0] [ 1] [ 2] [ 3]
[ 4] [ 5] [ 6] [ 7]
[ 8] [ 9] [10] [11]
...

我需要它来循环

for (int i = 1 - n; i < n; ++i) {
    //...
}

1 个答案:

答案 0 :(得分:1)

int main()
{
    int ar[4] = { 0, 1, 2, 3 };
    int n = 15;

    for (int i = 1 - n; i < n; ++i) {
        int sz = std::size(ar);
        int j = (i % sz + sz) % sz;

        printf("[%2d] : %d\n", i, ar[j]);
    }
}