Jak dopaść konretny iterator listy obiektów ;>

0

Cześć, natrafiłem na taki problem. Napisałem program generujący wszystkie permutacje zbioru n-elementowego. Użyłem tam zwykłej tablicy intów. Teraz chciałbym "odzwierciedlić" ten algorytm na listę obiektów. Przeszukałem kawał internetu ale nie wiem jak się do tego zabrać...
Oto prosty algorytm.

void permutacja_(int k, int n, int tab[])
{
    if(k==0)
        {
        for(int i=0; i<n; i++)
            {
            cout << tab[i] << " ";
            }
            cout << endl;
        }
else{
        //cout << k << endl;
        for(int i=0; i<k+1; i++)
        {
            swap(tab[i],tab[k]);
            permutacja_(k-1, n, tab);
            swap(tab[i],tab[k]);
        }
        }
}

A oto moja próba napisania tego dla listy obiektów, gdzie każdy z nich posiada 4 pola. Chciałbym uzyskać efekt permutacji czyli dla 2 obiektów, n=2, przykładowo
4 0 0 1
5 0 1 7
wszystkie możliwe kombinacje, czyli:
4 0 0 1
5 0 1 7

5 0 1 7
4 0 0 1

  void permutacja_(int n, int k, list<Item> Lst2)
  {
      if(k==0)
      {
           for(list<Item>::iterator i=Lst2.begin();i!=Lst2.end();++i)
            {
            cout<<i->Time()<< " " <<i->Dist()<< " " <<i->Index()<< " " <<i->Deadline()<<endl;
            }
            cout << endl << endl;
      }
      else
      {
            for(fuuuuuu)
            {


            }
      }
  }

Chodzi mi tutaj w sumie o wygodne indeksowanie elementów listy. Na wikibooks wyczytałem, że dostęp tylko poprzez iteratory, natomiast w wektorze możliwy jest również przez indeksy. Czy ta struktura danych (vector) sprawdziłaby się tutaj lepiej? Chodzi mi, aby program był napisany jak najprościej ;p

0

Zamień listę na vector.

1 użytkowników online, w tym zalogowanych: 0, gości: 1