Vector Element löschen
-
Hat denn keiner von euch eine Antwort parat?
-
Dein Beispiel da ist zwar ausserordentlich hässlich, aber ansonsten korrekt.
Eventuell hast du in deiner Version noch eine Referenz drin, oder hast den Copy-Konstruktor privat gemacht?
-
Ich hab gar keinen Copy Konstruktor (weiß leider nicht was das is, bin noch relativ neu, was STL anbelangt ...)
Wenn du das Beispiel hässlich findest, versuche es bitte schöner zu machen
-
kingruedi schrieb:
Versuch den Link mal, da sind wirklich viele Informationen zu dem Thema STL
-
struct Test { string eins, zwei, drei; }; map<string, Test> myFile; Test t; myFile.insert(make_pair("Hallo", t));
Das typedef brauchst du in C++ nicht mehr, und zum Einfügen nimmt man meist make_pair.
Aber wie gesagt, so müsste es gehen. Da brauchst du keinen Copy-Konstruktor. Das Problem liegt also wo anders.
-
Warum insert und nicht
myFile["test"] = t;
?
-
cYaONE schrieb:
Ich hab gar keinen Copy Konstruktor (weiß leider nicht was das is, bin noch relativ neu, was STL anbelangt ...)
du solltest echt ein paar vernünftige C++ Bücher/Tutorials lesen. Copy Konstruktor hat nichts mit STL zu tun
-
Copy Konstruktor:
Ein Copy-Konstruktor ist ein Konstruktor mit einem Parameter des Datentyps konstante Referenz der Klasse.Klasse ( const Klasse&)
http://www-home.fh-konstanz.de/~drachen/prog/Teil-5.pdf
http://www.volkard.de/vcppkold/copykonstruktor.html
http://fara.cs.uni-potsdam.de/~kaufmann//faqs/copyvsdirect.pdf
http://www.rtr.tu-darmstadt.de/cppkurs/22_2Copy_Konstruktor.html
http://os.inf.tu-dresden.de/~jn4/cppkurs/cpp_lek5.html
-
Wenn ich es so machen soll, wie operator void gesagt hat, meldet bei mir der Compiler, das ich den operator = überladen muss ...
Hat jemand Ahnung davon, wie das mit der STL (und vor allem bei Vector) geht?
-
Im Beispiel mit den drei strings als einzige Elemente wäre der operator= automatisch korrekt generiert worden. Wie sieht deine Struktur denn jetzt aus?