Witam,
chciałbym zrobić funkcję, która będzie zagnieżdżała for loopy wewnątrz for loopa i mieć jednocześnie dostęp do poszczególnych iteratorów.
Próbowałem zrobić coś takiego stosując rekurencję, ale mam wrażenie, że kolejne zagnieżdżone lupy nie aktualizują iteratorów, które się zmieniają w nadrzędnych loopach.
Próbowałem zrobić coś takiego, ale to nie działa tak jak bym sobie tego życzył:
std::vector<int> it;
// Tutaj kod, który wypełni wektor "it" danymi
std::vector<int *> iter;
for(int i=0; i<it.size(); i++)
{
iter.push_back(&it(i));
}
int sweek = 0;
int dup=0;
// I tutaj wywoluje funkcje, ktora jest zdefiniowana nastepujaco:
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]];
}
}
}
}
Co dokładnie chcę uzyskać? Zakładając, że it.size()
jest równe np. 3, chciałbym, aby moja funkcja wykonała taką instrukcję:
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];
}
}
}