Anzeige:
Ergebnis 1 bis 4 von 4

Thema: c++/STL "geschlossener" list-Container

  1. #1
    Registrierter Benutzer
    Registriert seit
    11.05.2007
    Beiträge
    24

    c++/STL "geschlossener" list-Container

    Hallo,

    ich brauche ein Container-Klasse die sich genau so verhält wie list aus der STL mit dem einzigen Unterschied, das die Beiden Enden der List "geschlossen" sein sollen.

    Das heißt, dass ein ++ auf einen Iterator auf das letzten Element der Liste einen Iterator auf das erste Element zurück liefern soll und nicht end() und umgekehrt ein -- auf den begin() Iterator einen Iterator auf das letzte Element liefert.

    Da list als double linked list implementiert ist scheint mir das eingentlich eine einfache Sache zu sein. Man müsste nur die Methode zum Einfügen von Knoten in die Liste so abwandeln, dass den next-Poiter des letzten Elements auf das erste zeigen lässt und den previous-Poiter des erten auf das letzte Element zeigen lässt.

    Leider kenne ich mich mit den STL Interna nicht gut genug aus. Und wenn ich anfange darin rum zu würchen mache ich bestimmt nur alles kaputt...

    Kann mir jemand sagen wo ich ansetzen müsset, bzw. welche Methode der list-Klasse ich verändern müsste?

  2. #2
    Administrator Avatar von anda_skoa
    Registriert seit
    17.11.2001
    Ort
    Graz, Österreich
    Beiträge
    5.477
    Ich denke du suchst am ehesten einen Circular Iterator:
    http://www.noveltheory.com/Iterators/Iterator_N0.htm

    Falls du wirklich eine zirkuläte Liste haben willst, findest du hier etwas:
    http://cppcorner.3x.ro/circularlist.html

    Ciao,
    _
    Qt/KDE Entwickler
    Debian Benutzer

  3. #3
    Registrierter Benutzer
    Registriert seit
    23.05.2004
    Beiträge
    592
    Seit Version 1.35 bietet Boost etwas, was sich "Circular Buffer" nennt. Habe ich selber noch nie benutzt, aber laut Beschreibung scheint diese Bibliothek deinen Bedürfnissen zu entsprechen.

    http://www.boost.org/users/news/version_1_35_0
    Gleich der dritte Eintrag unter "New Libraries".

  4. #4
    Registrierter Benutzer
    Registriert seit
    11.05.2007
    Beiträge
    24
    Der tipp mit dem Iterator war super! Daran hatte ich gar nicht gedacht. Jetzt kann ich je nach bedarf zyklisch oder linear ober die list iterieren.

    Danke!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •