normales Array reicht da nicht...



  • Hi alle zusammen,

    ich wollte mal fragen wie mein Problem am besten löse.

    Angenommen ich habe einige Fragen zu denen ich mehrere Antworten haben will. Die Anzahl der Antworten ist aber nicht immer gleich. Wenn ich jetzt 5 Fragen habe, die gefragt werden können (von 0 bis 4) und habe jeweils unterschiedliche anzahlen von Antworten. Wie lege ich die Antworten zu den Fragen am besten ab?

    Thnx im Vorraus



  • Keine Ahnung, kommt drauf an, was du können willst, etc.

    vector<pair<string, vector<string> > >
    map<string, vector<string> >
    ...
    gibt tausende von Möglichkeiten



  • Danke!

    Wie adressiert man denn bei map<string, vector<string> > die einzelnen Strings in dem Vector der Map?



  • Incubus_ST schrieb:

    Danke!

    Wie adressiert man denn bei map<string, vector<string> > die einzelnen Strings in dem Vector der Map?

    z.B. mit iteratoren

    //eingabe
    vector<string> stringvec1;
    stringvec1.push_back("aaa");
    stringvec1.push_back("bbb");
    stringvec1.push_back("ccc");
    
    vector<string> stringvec2;
    stringvec2.push_back("aaa");
    stringvec2.push_back("bbb");
    stringvec2.push_back("ccc");
    
    map<string, vector<string> > stringmap;
    stringmap["a"] = stringvec1; //hier wird eine kopie von stringvec1 
                                 //zur map hinzugefügt.
    stringvec1.push_back("ddd"); //diese änderung erfährt der in der map 
                                 //gespeicherte vector natürlich nicht
    
    stringmap["b"] = stringvec2; //hier wird eine kopie von stringvec3 
                                 //zur map hinzugefügt.
    
    //ausgabe
    for( map<string, vector<string> >::iterator it = stringmap.begin();
         it!=stringmap.end();
         ++it)
    {
       vector<string>& vec = it->second;
       for(int i=0; i<(unsigned)vec.size(); ++i)
       {
          cout<<"i:"<< vec[i] << endl;
       }
    }
    
    //dummy
    stringmap["a"] = stringvec2; //der an der stelle "a" gespeicherte stringvec
                                 //wird ersetzt.
    

Anmelden zum Antworten