Element aus slist
-
Wie kann ich auf ein bestimmtes Element einer slist zugreifen, ohne durch durch die liste durch zu iterieren?
-
Airdamn schrieb:
Wie kann ich auf ein bestimmtes Element einer slist zugreifen, ohne durch durch die liste durch zu iterieren?
Kenn mich mit slist zwar nicht wirklich aus, ist afaik jedoch eine einfach verkettete Liste (singlelist). Solche erlauben es grundsätzlich nicht auf ein beliebiges Element innerhalb der Liste zuzugreifen. Wie auch?

Btw. slist ist gehört nicht zum Standard-C++.
Caipi
-
Ja, im Grunde hast Du recht. Aber da ich per ++Iterator die Liste durchlaufen kann, dachte ich es würde auch sowas wie Iterator + 5 o.ä. gehen...
-
Du kannst auf jeden Fall mit std::advance( it, 5) oder sowas arbeiten. Macht aber keine Rangechecks.
-
sehr gut, genau sowas meinte ich

btw. wozu soll slist zugeordnet werden, wenn nicht Standard C++ ?
Dachte alles, was mit STL zu tun hat gehört zum Standard...
-
Die Listenklasse im Standard heißt einfach nur list, nicht slist. Deshalb wohl die Verwirrung

-
@Airdamn
slist ist eine Erweiterung deiner STL-Implementation. Gehört zwar nicht zum Standard, fragen zu ihrer Funktionsweise passen imo aber trotzdem am Besten in dieses Forum.PS: Bedenke, dass auch std::advance Element-für-Element durch die Liste gehen muss. Wenn du häufig auf beliebige Elemente der Liste zugreifen musst, dann solltest du dir überlegen, ob du mit einem Random-Access-Container (wie z.B. std::vector) nicht besser beraten bist.