Vector mit Struct nutzen



  • Hallo,

    also folgendes problem, ich woltle ma fragen warum der code hier nicht funktioniert, also was daran falsch ist und ob man sowas wie ich es machen will überhaupt geht.

    #include<iostream>
    #include<string>
    #include<cstddef>
    using namespace std;
    
    struct test {
    
        char* Question;
        char* Answer;
    };
    
    int main()
    {
        test meintest;
        vector<string> meintest;
    
        meintest[0].Question="irgendwas";
    
        cout<<meintest[0].Question<<endl;
    
        system("Pause");
    }
    


  • test meintest;
        vector<string> meintest;
    

    Du hast zwei Variablen mit dem selben Namen definiert, das ist nicht erlaubt. Ich vermute mal eher, du benötigst so etwas:

    vector<test> meintest(1);//die Anfangsgröße angeben
    meintest[0].Question="irgendwas";
    cout<<meintest[0].Question<<endl;
    

    (btw, ein default-konstruierter vector<> hat eine Größe von 0 - da greifst du auch noch auf Werte zu, die dir nicht gehören)

    PS: Nur ein Randvorschlag - nimm lieber std::string anstelle von char*.



  • Du hast z.B. zwei Objekte gleichen Namens unterschiedlichen Typs.



  • also ich habe es jetzt ma so probiert wie du es gesagt hast aber da geht es au net

    #include<iostream>
    #include<string>
    #include<vector>
    using namespace std;
    
    struct test {
    
        string Question;
        string Answer;
    };
    
    int main()
    {
        test meintest;
    
        vector<test>meintest(1);
    
        meintest[0].Question="irgendetwas";
    
        cout<<meintest[0].Question<<endl;
    
        system("Pause");
    }
    


  • streiche die Zeile "test meintest;"
    Diese Instanz von test brauchst du nicht und sie führt zu einem Nameskonflikt mit dem Vector


Anmelden zum Antworten