[C++] Tablica zapetlona?

0

Witam!
Do rzeczy: czy w C++ dalo by rade zaimplementowac cos takiego, jak vector, albo lista "zapetlona"?
Mam na mysli to, zeby wskaznik na nastepny element na koncu listy wskazywal na jej poczatek i na odwrot.
Inaczej:

  1. jestem w t.end()-1
  2. wskaznik++
  3. jestem w t.begin()

Moze STL sluzy tutaj pomoca? Pisanie wlasnej struktury jest dla mnie ostatecznoscia (zalezy mi na prostocie pozniejszego debugowania programu). Moga byc jakies funkcje itp.

Dzieki z gory za pomoc, zalezy mi na jak najprostszej implementacji czegos, co dzialaloby jak wyzej.

0

Napisanie czegoś takiego to jest raptem ze 40 linijek...

0

Co to za głupie pytanie, oczywiście że się da

ale IMO po takiego utrudniać sobie życie, piszesz coś ala i będzie lepiej działać niż twoja struktura:

template<typename TYPE>
void iteruj(std::vector<TYPE>::iterator& it, const std::vector<TYPE>& v)
{
  ++it;
  if(it == v.end()) it = v.begin();
}

no ale jeśli tak bardzo chcesz, ta się da, aczkolwiek nie bardzo jest co tu tłumaczyć, po prostu piszesz listę tak, żeby elementy w liście odpowiednio wskazywały, np. jeśli masz 1 element w "pierścieniu" to next musi wskazywać na samego siebie, itd. żeby zawsze był pierścień. Tutaj musisz wiedzieć ile masz obiektów, np. żeby wiedzieć że został ci 1 element i po zdjęciu go usunąć go bez aktualizacji wiązań elementów obok, itd. Możesz albo po prostu licznikiem liczyć, albo testować wartości wskaźników (this == next - wtedy wiesz że został ostatni)

0

Glupie pytanie? Dla obeznanych w strukturach moze i tak...

Edit:
Wystarczyly mi wlasne funkcje do inkrementacji i dekremantacji - dzieki ;)

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