C ++ - 循环递归 - 如何访问各种迭代器

时间:2018-04-10 16:03:43

标签: c++ pointers for-loop recursion iterator

我想在for循环中进行递归,可以独立访问以下迭代器。 我试图这样做,但看起来嵌套循环不会更新其父迭代器。我不确定这里有什么问题:

    std::vector<int> it;
    // some code that fill "it" vector

    std::vector<int *> iter;
    for(int i=0; i<it.size(); i++)
    {
        iter.push_back(&it(i));
    }

    int sweek = 0;
    int dup=0;

    // And now call the function which definition is:
    void matrixRecursion()
    {
        int start = sweek;
        int end = matrix[sweek];

        for(it(start); it(start)<end; it(start)++)
        {
            if(sweek < it.size()-1)
            {
                sweek++;
                matrixRecursion();
            }
            else
            {
                for(int t=0; t<it.size(); t++)
                {
                    dup += nIndex[*iter[t]];
                }
            }
        }
    }

例如,假设it.size()是3.那么如果一切都按预期工作,那么结果应该是这样的:

for(int i=0; i<matrix[0]; i++)
{
    for(int j=0; j<matrix[1]; j++)
    {
        for(int k=0; k<matrix[2]; k++)
        {
            dup += nIndex[i] + nIndex[j] + nIndex[k];
        }
    }
}

0 个答案:

没有答案