compiler fehler bei iterator vc++



  • ich habe jetzt folgeneden code hier, der ist zwar nicht gerade sinnig aber ich wollte nur mal ein wenig rumspieln.

    leider bekomjme ich immer diesen compiler fehler(unter linux gehts)

    --------------------Configuration: aufgabe4c - Win32 Debug--------------------
    Compiling...
    A4c.cpp
    C:\studium2\algo\aufgabe4c\A4c.cpp(18) : error C2676: binary '+=' : 'class std::list<int,class std::allocator<int> >::iterator' does not define this operator or a conversion to a type acceptable to the predefined operator
    Error executing cl.exe.

    aufgabe4c.exe - 1 error(s), 0 warning(s)

    #include <windows.h>
    #include <iostream.h>
    #include <list>
    #include <iterator>
    
    using namespace std;
    
    void mergesort(int a[], int l,int r){
    
        list<int> List;   
        list<int>::iterator it=List.end();
    
        for(int i =0;i<r;i++)
        List.push_back(a[i]);
    
        it +=2;
    
    }
    


  • Versuchs mal mit

    *it +=2;
    

    [ Dieser Beitrag wurde am 20.06.2003 um 19:55 Uhr von C Newbie editiert. ]



  • *it += 2 ist nun aber was anderes.

    it += 2 sollte nicht gehen, weil eine list keinen index-Zugriff hat. Müsste man zweimal it++ schreiben.



  • ich habe folgende aufgabe zu lösen

    (c) Implementieren Sie den rekursiven Mergesort Algorithmus (Idee siehe Vorlesung) für
    Zweiwege-Mischen unter Verwendung von verketteten Listen unter Zuhilfenahme von
    Datenstrukturen und Algorithmen der STL und testen Sie ihn mit einem zufällig erzeugten
    Strom von ganzen Zahlen.

    aber ich frage mich warum listen und nicht vektoren, was bringt mir das ???


Anmelden zum Antworten