dynamisches Array durchgehend erweitern
-
Hallo Leute,
ich hab da so ein Problem

class cdb { public: string* p_adb; void add(string &s, int &z) { string* p_adb = new string[z+1]; p_adb[z] = s; } void show(int &x) { cout << p_adb[x] << endl; } }; int main() { ////Variablen deklarieren//// string word; //Einzugebendes Wort char tmp_bchstb; //Hilfsvariabel cdb db; //%%%%Eingabe des Wortes%%%%%// for (int i=0; i<=8; ++i) { string* p_adb = new string[i+1]; cout << "Word: "; cin >> word; db.add(word,i); db.show(i); }Ich möchte gerne, dass mit jedem Wort, das in der Schleife eingeben wird, das Array sich einen Speicherplatz mehr angelt, indem dieses Wort eingefügt wird
das ist der aktuellste Code, aber der funktioniert leider nicht. Das Programm bricht nach dem ich das Wort eingegeben habe ab.
Hat jemand von euch eine Idee?
greetz johnc.
-
#include <vector> #include <string> using namespace std; class cdb { public: void add( const string &s ) { p_adb.push_back( s ); } void show() { for ( int i=0; i<p_adb.size(); i++ ) cout << p_adb[i] << endl; } private: vector<string> p_adb; }; int main() { cdb db; //%%%%Eingabe des Wortes%%%%%// for (int i=0; i<=8; ++i) { //string* p_adb = new string[i+1]; <- was sollte das hier? cout << "Word: "; string word; //Einzugebendes Wort, kann man auch hier deklarieren ;) cin >> word; db.add( word ); } db.show(); }?
-
wow, vielen dank, das hat mich schon mal einen Schritt weiter gebracht.
ich versuch das jetzt allerdings auch erstmal zu verstehen
greetz johnc
-
JohnC. schrieb:
ich versuch das jetzt allerdings auch erstmal zu verstehen

Sehr gut
Dazu möchte ich dir aber gerne noch eine kleine Referenz zu der Vektor-Klasse ans Herz legen und dir prophezeien, dass es mal eine deiner am häufigst-benutzten Klassen des C++-Standards sein wird 
-
Erklärung zum Vector:
http://www.kharchi.eu/wiki/doku.php?id=cpp:std:vector
-
Artchi schrieb:
Oh, du bist umgesiedelt? Hatte mich schon gewundert warum deine alte Seite nicht mehr ging
