Rausfinden auf welcher Position sich ein iterator befindet



  • Hi, wie kann ich rausfinden auf welche Positon in einem Vector ein iterator zeigt? Mit diesem Wert müsste ich nämlich weiterarbeiten.

    Brauche das hier für:

    ++vector[iterator];
    

    Iterator zeigt auf irgendein Element 17, dann soll der Inhalt des Feldes 17 vom Vector um 1 erhöht werden.



  • dasnichts schrieb:

    Hi, wie kann ich rausfinden auf welche Positon in einem Vector ein iterator zeigt? Mit diesem Wert müsste ich nämlich weiterarbeiten.

    Brauche das hier für:

    ++vector[iterator];
    

    Iterator zeigt auf irgendein Element 17, dann soll der Inhalt des Feldes 17 vom Vector um 1 erhöht werden.

    Das geht dan einfach mit :

    ++(*iterator)
    

    Du hast ja mit dem Iterator einen Zeiger auf dein Element, den du auch benutzen darfst.

    Eine Möglichkeit die Position herauszufinden ist:

    std::distance(vector.begin(), iterator);
    


  • Durch Dereferenzieren des Iterators erhälst du Zugriff auf das Element: *iter. Dann z.B. ++(*iter), falls es ein int ist.

    hmpf, zu lahm. 😛


Anmelden zum Antworten