Array
-
Habe eine Frage.
Ich erstelle z.b. eine Klasse und stelle diese 5 mal in den Heap (Array)
wie kann ich nun überprüfen ob das letzte Element beschrieben ist ?
das Ziel von mir ist eigentlich nur, wenn der Speicher nicht mehr reicht um weiteres Aufzunehmen, soll er den Speicher vergrößern.
Beispiel:
5 WarenGoods[4] //dieser wert soll nun getestet werden ob hier was zugewiesen worden ist
-
das geht so im allgemeinen nicht weil du ja von vornherein nicht weiss viewiel speicher ein objekt deiner klasse verballern wird...
am einfachsten ist z.b. sowas...
std::vector<*myclass> array; array.push_back(new myclass(...));// element hinzufügen.. array.size() liefert dir die aktuelle grösse des arrays... array[i] ist wie gewohnt zugriff aufs i-te element am ende nicht vergessen mit delete wieder den speicher freizugeben...
-
Es würde schon "irgendwie" gehen:
z.B. so:
klasse *array = new klasse[5]; //.... // Array ist jetzt voll klasse *temp = new klasse[5]; for(unsigned i = 0; i < 5; ++i) { temp[i] = array[i]; } delete array; array = new klasse[6]; for(unsigned i = 0; i < 5; ++i) { array[i] = temp[i]; } delete temp; // nun ist array 6 felder gross und enthält die alten daten.
Aber das ist keine Schöne variante.
Du solltest wirklich lieber n std::vector nehmen
-
mit Vectoren kenn ich mich noch nicht aus, könnt ihr ein Tutorial empfehlen ?
mfg
-
Codeguru is immer gut:
http://www.codeguru.com/Cpp/Cpp/cpp_mfc/stl/article.php/c4027