random_iterator



  • Hey Leute,

    wie deklariere ich denn einen random_iterator aus der Standardbibliothek?

    ich habe:

    std::map<double, string>::random_iterator;
    

    ...nur funktioniert das leider nicht

    vllt kann mir da schnell jemand weiterhelfen?

    Mfg



  • Also wenn ich micht nicht irre und die Referenz richtig interpretiere unterstützt std::map keine randomaccess_iterator sondern nur bidirectional iterators:

    This container class supports bidirectional iterators.

    Auszug von hier:
    http://www.cplusplus.com/reference/stl/map/



  • Du meinst wohl Random-Access-Iterator. 😉

    Von den STL-Container unterstützen nur std::vector und std::deque Random-Access-Iteratoren, std::list und die sequenziellen Container benutzen bidirektionale Iteratoren. Du kannst allerdings mit std::advance() die Funktionalität eines Random Access ersetzen, allerdings kann das performancemässig sehr ungünstig werden.

    Aber mal davon abgesehen haben die einzelnen Iteratorkategorien einen Sinn. Wieso sollte man in einer std::map auf das 35. Element zugreifen wollen? Wenn du sagst, wozu du das brauchst, können wir dir vielleicht Alternativen nennen.


Anmelden zum Antworten