std::set mit Random-Acces-Iterator



  • Hallo,
    ich bin auf der Suche nach einem Container, die wie std::set funktioniert, also das jedes Elemtent nur einmal vorkommt, und das die insert funktion auch den selben return Wert hat, allerdings einen Random Access Iterator hat, damit ich mit einem Index darauf zugreifen kann.
    Gibt es sowas schon, oder muss ich mir das was selber basteln?



  • RAIterator schrieb:

    Hallo,
    ich bin auf der Suche nach einem Container, die wie std::set funktioniert, also das jedes Elemtent nur einmal vorkommt, und das die insert funktion auch den selben return Wert hat, allerdings einen Random Access Iterator hat, damit ich mit einem Index darauf zugreifen kann.

    std::advance .

    Wenn du die Geschwindigkeit eines Random-Access-Iterators brauchst: Brauchst du logarithmischen Zugriff auf ein Element nach Name? Brauchst du relativ schnelles Einfügen?



  • Auf die Geschwindigkeit kommt es jetzt nicht so stark drauf an, schadet aber natürlich nicht 🙂
    std::advance klingt gut, ist mit nicht ganz klar, wie ich dann die Position eines Iterators rausbekomme, der von insert zurückgegeben wird.



  • RAIterator schrieb:

    Auf die Geschwindigkeit kommt es jetzt nicht so stark drauf an, schadet aber natürlich nicht 🙂
    std::advance klingt gut, ist mit nicht ganz klar, wie ich dann die Position eines Iterators rausbekomme, der von insert zurückgegeben wird.

    std::distance(iter, s.begin());

    PS:
    aber set hat doch schon einen index ueber den du auf einzelne ELemente zugreifen kannst. Was genau willst du denn mit den iteratoren machen?

    PPS:
    manchmal ist ein sortierter vector fuer sowas besser.



  • [quote="Shade Of Mine"PS:
    aber set hat doch schon einen index ueber den du auf einzelne ELemente zugreifen kannst. Was genau willst du denn mit den iteratoren machen?[/quote]
    Seit wann denn das?

    Shade Of Mine schrieb:

    PPS:
    manchmal ist ein sortierter vector fuer sowas besser.

    Ja, ich habe mir jetzt auch einen sortierten, "einzigartigen" (jedes Element nur ein mal) gebastelt.


Anmelden zum Antworten