std::list == linked list ?
-
abend!
ich hab ein kleines programm, welches in C geschrieben ist. dieses möchte ich jetzt nach C++ portieren.
das ganze hab ich schon soweit hinbekommen, da im alten programm die variablen zum großteils global waren hab ich eine klasse gemacht.
so, bei der singly-linked-list hab ich mir gedacht, ich könnte std::list nehmen.
aber wie?struct mylist { char* name ; struct mylist* next ; }; mylist* list = new mylist ; mylist->name = new char ; //...
Wie könnte man das mit std::list machen?
-
#include <list> #include <string> using std::list; using std::string; int main() { list<string> namen; namen.push_back("Heinz"); namen.push_back("Uwe"); }
-
das hier:
mylist* list = new mylist ; mylist->name = new char ;
sieht sehr komisch aus - so, als ob du zumindest in der zweiten zeile was ganz anderes machen wölltest...
struct mylist* next ;
das struct brauchst du in C++ nicht mitschreiben...es würde so aussehen:
#include <list> #include <string> int main() { std::list< std::string > liste; liste.push_back("hallo welt!"); liste.push_back("hallo du!"); }
std::list ist üblicherweise eine double-linked-list - aber das sollte dich als anwendet nicht weiter interessieren...
allerdings solltest du beachten, dass du noch lang kein c++ kannst, nur weil du c kannst - du solltest dir also lieber ein c++ buch kaufen als per try and error alles auszuprobieren - und damit voll hässlichen code zu produzieren...
bb