QList iterieren



  • Hallo,

    ich nutze eine QList:

    QList<Personen> personen;
    

    darauf greife ich zu mit:

    personen.at(i).name.contains("...");
    

    nun möchte ich die Liste nach bestimmten Namen durchsuchen, und diese löschen. Dazu habe ich in QList nix fertiges gesehen, deshalb dachte ich mir ich iteriere die Liste. So was habe ich allerdings noch nie gemacht. Aus der Doku habe cih jetzt das heraus gefunden:

    QList<Personen>::iterator i;
    for(i=personen.begin(); i!=personen.end(); ++i) {
    
    }
    

    Nur wie greife ich jetzt über den Iterator auf name zu, damit ich mit contains prüfen kann? Oder gibt es für das, was ich suche schon was fertig bei QList?



  • über den *- oder ->-Operator des Iterators kommst du an das darunterliegende Objekt

    QList<Personen>::iterator i;
    for(i=personen.begin(); i!=personen.end(); ++i) {
        i->name.contains("...");
        // oder
        (*i).name.contains("...");
    }
    


  • Gut das scheint so weit zu klappen. Aber wie lösche ich nun das Element in der Liste, auf das der Iterator zeigt? Personen.removeAt(i); geht ja nicht.



  • Ich habe leider immer noch keine Lösung gefunden.



  • Siehe Doku:

    iterator QList::erase ( iterator pos )
    

Anmelden zum Antworten