Auf das Array im vector zugreifen



  • Hi,

    ich muss auf die Rohen Daten innerhalb von std::vector zugreifen. Ist das irgendwie möglich, ohne dass ich eigenen container schreibe?



  • pack einfach einen iterator auf den vector

    std::vector< CString >::iterator iter;
    iter = List.begin()  //List ist deine vectorliste
    

    zugriff hast du auf jeden string {mussja nicht CString wie im beispiel sein} einfach durch erhoehen des iterators

    iter++;
    

    geht auch in eine schleife

    for( iter = List.begin(); iter != List.end(); iter++ )
    {
        // tu was mit den aktuellen string
    }
    


  • Ich muss an einen API-Aufruf ein Array übergeben. Es könnte auch sein, dass der Inhalt des Arrays innerhalb der funktion verändert wird. Nicht aber die Größe.

    Geht mit Iteratoren das auch?



  • Bei std::vector kannste auch den operator[] benutzen.

    for( int i = 0; i < List.size(); ++i )
    {
        tuWasMit( List[i] );
    }
    


  • den iterator kann man verstehen als zeiger auf das erste zeichen in der kette mit dem auch vorgeschlagenen [] bekommst du zugriff direkt in den vector ohne den iterator

    das verhaellt sich alles wie ein stink normaler array - du kannst schreiben, lesen, veraendern wie du magst



  • Du kannst problemlos einen Zeiger auf das erste Element eines Vectors nehmen:

    &myvector[0]
    


  • danke für die schnelle Hilfe. Ich probiere es dann mal aus. Wenn es nicht funktioniert, weiß ich ja wer schuld ist 😉



  • deformator schrieb:

    Wenn es nicht funktioniert, weiß ich ja wer schuld ist 😉

    JA, du oder/und dein code {o;

    programmieren besteht niht aus erfinden, programmieren besteht aus fehler beheben

    wie bekomm ich das nach das = problem
    wie kann ich das auslesen = problem

    usw
    usw

    und in diesem fall sind das DEINE probleme #ggg q:


Anmelden zum Antworten