Alternative zu std::vector in NET?



  • List<int> ^ foo = gcnew List<int>();
    
    foo->Add(42);
    
    int bar = foo[0];
    


  • wenn ja...hast du dafür vielleicht ein kleines beispiel parat wie ich den deklariere und benutze?
    find bei der msdn nichts hilfreiches irgendwie

    Hast Du überhaupt geschaut????
    http://msdn2.microsoft.com/en-us/library/6sh2ey19(vs.80).aspx

    Simon



  • jop ich hatte geschaft, hatte aber den index in [] total übersehen, da ich mir das abgewöhnt hatte, seit ich vectoren benutzt hab^^
    da dort alles per ".at(index)" lief
    aber danke, habs einfach übersehn 🙂

    EDIT: Ihr wisst nicht auch zufällig wie ich die ArrayList oder List mehrdimensional bekomme?
    so wies beim vector ging, gehts leider nicht...



  • Hallo,
    Wie gings denn bei std::vector?

    Ich kann mir im Moment nicht vorstellen, was mit ArrayList / List nicht gehen sollte.

    simon



  • Bei Vectoren konnte man z.b. ein 2dimensionalen vector erzeugen,
    indem man den eindimensionalen noch einmal in einen vector packt.
    also im prinzip sieht dieses dann so aus:
    vector<vector <string>> my_var;

    Diese art und weise hab ich auch bei arraylist/list versucht, jedoch irgendwie ohne erfolg,
    oder ich hab irgendwas falsch gemacht.
    hast du vielleicht rat, wie ich mit arraylist/list mehrere dimensionen erzeugen kann?



  • List<List<foo^>^>^ lst2dOfFoo;
    


  • List<List<String^>^>^ test = gcnew List<List<String^>^>(2);
    

    also compilieren lässt es sich
    aber wenn ich z.b. test[0]->Add("blabla"); mache kommt nen fehler "System.ArgumentOutOfRangeException"
    obwohl ich die anfangskapazität für die erste dimension auf 2 gesetzt hab.
    wenn ich mir die Kapazität per test->Capacity ausgeben lasse steht dort auch eine 2

    echt der wurm drin 😣



  • Hallo,
    Du musst zuerst in der Liste der Listen ein Element hinzufügen (eine Liste).

    List<List<String^>^>^ test = gcnew List<List<String^>^>(2);
    test->Add(gcnew List^());
    test[0]->Add("blabla");
    

    Mit der Kapazität erzeugst Du keine Elemente.
    Du reservierst nur Speicher.
    Gruss Simon

    PS: Ev. ist meine C++/CLI syntax nicht so astrein.. aber prinzipielle liegt hier das Problem..



  • List<List<String^>^>^ test = gcnew List<List<String^>^>(); 
    test->Add(gcnew List<String^>()); 
    test[0]->Add("blabla");
    


  • letztere version funktioniert 🙂
    ich danke euch allen, die sich hier eingeklickt haben
    nu kann ich endlich mein projekt weitermachen 🙂
    wünsche euch ein schönes WE und einen schicken ersten advent

    der chris


Anmelden zum Antworten