有没有办法迭代一个n维数组(其中n是可变的)而不使用递归?

sta*_*tti 4 c++ iteration algorithm recursion

有没有办法迭代一个n维数组(其中n是可变的)而不使用递归?我现在正在使用C++,但我想几乎任何语言的答案都可以.

编辑:其实我真正的问题有点不同:我实际上想要枚举数组的索引.简单的2D示例,带有2x2数组:0,0; 0,1; 1,0; 1,1.

Oli*_*rth 8

void iterate(const std::vector<int> &dims)
{
    std::vector<int> idxs(dims.size());

    while (1)
    {
        // Print
        for (int i = 0; i < dims.size(); i++)
        {
            std::cout << idxs[i] << " ";
        }
        std::cout << "\n";

        // Update
        int j;
        for (j = 0; j < dims.size(); j++)
        {
            idxs[j]++;
            if (idxs[j] < dims[j]) break;
            idxs[j] = 0;
        }
        if (j == dims.size()) break;
    }
}
Run Code Online (Sandbox Code Playgroud)