Elemente eines Vektors etitieren



  • Ich habe einer Funktion einen vektor: tKOORDvec Liste uebergeben.
    In der Funktion moechte ich einzelne Elemente des vektors vom
    Typ Koord (vorher durch struct Koord definiert) aendern.
    struct Koord ist z.B. so aufgebaut double x,y,z,b,l,h. x,y,z habe ich schon mit Werten gefuellt.
    In der Funktion moechte ich x,y,z auslesen und b,l,h dem zugehörigen
    Element des vektors zuweisen.
    Bisher habe ich so probiert:
    void XYZ_in_blh(tKOORDvec &Liste)
    {
    tKOORDvec::iterator Iter;
    KOORD b;
    for(Iter= Liste.begin();Iter != Liste.end();Iter++)

    { b=*Iter;
    //b werden dann blh zugewiesen
    //Wie bekomme ich b,l,h wieder in das entspr. Vektorelement
    //zu x,y,z?



  • Was macht

    KOORD b;
    b=*Iter;
    

    ???

    b ist die Kopie von *Iter !!!
    Warum sollte es nicht gehen,

    *Iter=b;
    

    nach der Änderung zu schreiben?

    P.S. Einfacher ist es, folgendes zu schreiben:

    KOORD& b = *Iter; // Änderungen in b werden sofort übernommen!
    b.x = 5;
    ...
    
    // andere Möglichkeit:
    Iter->x = 5;
    ...
    

Anmelden zum Antworten