list<T> mit zugriff auf bestimmte Elemente?



  • Hallo ich arbeite gerade mit einer list<T> und bin gerade auf ein kleines Problem gestoßen.
    Wie kann ich direkt auf ein Element zugreifen, zum Auslesen/Überschreiben, ohne direkt alles auflisten zu müssen, also gibt es eine Möglichkeit für einen [] Operator oder eine T Get(int) funktion?



  • http://www.cplusplus.com/reference/stl/list/

    Soweit ich weiß, musst du dich bis zu deinem gewünschten Element durchiterieren.



  • std::list hat keinen Random Access Iterator. Also kommst du nicht drum herum vom Anfang an durchzugehen.

    Du kannst jetzt natürlich eine eigene Funktion schreiben, die für dich das übernimmt, oder du benutzt std::advance als eine generische Version davon.

    Das schöne ist, dass du damit unabhängig vom Container arbeiten kannst und falls du doch einen vector hast auch gleich eine spezialisierte Version benutzt.



  • drakon schrieb:

    Das schöne ist, dass du damit unabhängig vom Container arbeiten kannst und falls du doch einen vector hast auch gleich eine spezialisierte Version benutzt.

    Das weniger Schöne ist, dass eine ineffiziente Verwaltung systematisch versteckt wird.



  • Nexus schrieb:

    drakon schrieb:

    Das schöne ist, dass du damit unabhängig vom Container arbeiten kannst und falls du doch einen vector hast auch gleich eine spezialisierte Version benutzt.

    Das weniger Schöne ist, dass eine ineffiziente Verwaltung systematisch versteckt wird.

    Was bist zur Optimierunsphase überhaupt keine Rolle spielt und man, wenn nötig durch ändern einer einzelnen Zeile Code wieder ändern kann.


Anmelden zum Antworten