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 🤡





  • Artchi schrieb:

    http://www.kharchi.eu/wiki/doku.php?id=cpp:std:vector

    Oh, du bist umgesiedelt? Hatte mich schon gewundert warum deine alte Seite nicht mehr ging 🙂


Anmelden zum Antworten