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 ???