String Liste oder Vector?



  • hallöle

    hab mal ne Frage (wer häts gedacht 🙂 )
    Was ist besser, um eine unbestimmte Menge an Strings in ner Membervariablen zu speichern.

    list<string>
    // oder 
    vector<string>
    

    Muss die Namen nur einmal, bei Programmstart, auslesen.

    Danke schoma



  • nimm was du wilst......vector hat nen []operator..ne liste net da musch dich durchhangeln.....
    des wegen würd ich vector nehmen...aba es gibt sicher auch gründe für ne liste....



  • @Shade: Du bist echt zu dumm für diese Welt. Hör auf dich zu verhalten wie ein 13-jähriges Kind, und auch so zu schreiben. Ach nein ich vergaß, du bist ja so ein Kind 😡

    @Topic: Schau mal hier -->
    http://img137.imageshack.us/img137/899/containerchoice4dr.png



  • Danke.

    ich Depp hab aber grad gemerkt, dass ich noch nen Bezeichner zu jedem String brauch.
    Also etwa so:

    file bezeichner1 = loadfile( string1 );
    file bezeichner2 = loadfile( string2 );
    

    Krieg ich das mit ner Map oder sowas hin?



  • jep
    geht so:

    std::map<std::string, std::string> values;
    values["bez1"] = loadfile(filename);
    values["bez2"] = "test";
    

    @fachmann:
    ja ihr habt alle was gegen mich.
    ich wies, is net ganz unvertständlich.
    ich schreib oft unüberlegt und ohne wirklich es zu wissen.
    aba trotzdem darf kich ja wohl sagen das mir std::vector besser gefällt
    als std::list da std::vector nen []operator hat.
    programmier/preformance technsich hast du schon rehct das man anhand der aufgabe den typ überlegen sollte.
    aussadem bin ich auch grad erst 15 geworden also sind deine 13 jahre gar net mal so wiet entfernt.

    Mfg Shade37337



  • std::map<std::string, std::string> values;
    values["bez1"] = loadfile(filename);
    values["bez2"] = "test";
    

    kann ich da nicht so machen?

    std::map<file, std::string> values;
    file values[ "bezeichner1" ] = loadfile(values[ "filename1" ]);
    

    oder brauch ich da zwei maps, bzw ne multimap



  • nicht multimap, wie doof



  • hi

    std::map<class Index, class Values>
    

    also wenn so wie du geschreiben hast dann so

    std::map<std::string, file> values;
    values["bsp"] = loadfile(values["test"]);
    

    ich hoffe ich hab dich richtig verstanden.

    Mfg Shade37337



  • danke

    ja beinah, ich hab nen verdreher gehabt
    someint ichs eigentlich.

    std::map<std::string, file> values;
    values["bsp"] = loadfile("bsp"]);
    

    jetzt will ich da noch drüber iterieren, und dann hab ichs.
    so dass für jedes file der richtige filename geladen wird.

    ich versuchs mal, sonst meld ich mich wieder.



  • So gehts:

    typedef std::pair<std::string, file> T_date;
    typedef std::map<std::string, file> T_map;
    typedef T::iterator T_it;
    //...
    
    T_map values;
    
    T_date x("filename.abc", filename);
    insert( x );
    // und so weiter
    
    //...
    
    for( T_it it = values.begin(); it != values.end(); it++ )
        (*it).second = load_file( (*it).first );
    

    Mach ich das richtig (es geht jedenfalls), oder geht das einfacher?

    Danke jedenfalls Shade37337
    (und auch dem Fachmann für die tolle Entscheidungshilfegraphik
    ihr könnt ja doch noch was anderes als im sandkasten rumtrollen)


Anmelden zum Antworten