Mehrdimensionale dynamische Arrays von bool-Werten



  • Hallo allerseits.
    Ich bin auf der Suche nach einer Möglichkeit mehrdimensionale dynamische Arrays von boolschen Werten zu realisieren. Ich habe schon überlegt normale mehrdimensonale bool-Feldes zu verwenden und diese bei Bedarf zu erweitern. aber das Anlegen eines größeren Feldes und kopieren aller Werte erscheint mir etwas unelegant und langsam.
    Eine ArrayList mit Arraylisten als Inhalt wäre von der Funktionalität schon ziemlich genau das was ich suche, aber das ewige casten (von Object^ nach Arraylist^ und von Object^ nach bool^) ist auch nicht schön und macht den Code unleserlich.
    Würde mich freuen wenn jemand Ideen hätte.
    Servus,
    Matthias



  • Standard C++:
    std::vector<std::vector<bool> >

    Evtl. ist ein anderer Container der STL bessergeeignet (deque z.b.), kommt aber auf die Aufgabe an.



  • Herr Latz schrieb:

    Eine ArrayList mit Arraylisten als Inhalt wäre von der Funktionalität schon ziemlich genau das was ich suche

    ArrayList benutzt heute niemand mehr ohne GRund. Schau dir mal die vielen tollen generics an, da musst nie casten. Oder wie phlox schon gemeint hat vector oder deque. Es gibt so viele Möglichkeiten 😉



  • Danke für die Antworten,
    habe mich dann für std::vector<std::vector<bool> > entschieden. Diese Generics-Sache interessiert mich aber trotzdem. ArrayLists sind halt schon immer ein wenig nervig und die Typsichere Alternative, die Generics zu sein scheinen, würde ich mir gerne zu eigen machen. Leider finde ich im Netz nirgends ein Tutorial oder etwas derartiges, das dieses Thema unter C++/CLI behandelt. Kennt jemand eine etsprechende Seite?



  • System::Collections::Generic::List<System::Collections::Generic::List<bool>^> bool2Dim
    

    oder

    ref class Bool2Dim : System::Collections::Generic::List<System::Collections::Generic::List<bool>^>
    {
    };
    


  • Ach ja, super!
    Ich habe jetzt doch der Verwendung von mit generics den Vorzug gegeben, und es funktioniert gar wunderbar. Die Option mit std::vector war nicht praktikabel, da ich eine RemoveAt-Methode oder etwas equivalentes benötige.
    Danke für die manigfaltigen Ratschläge,
    Matthias.



  • Die Option mit std::vector war nicht praktikabel, da ich eine RemoveAt-Methode oder etwas equivalentes benötige.

    Abgesehen davon das es abhängt ob der Vector in einer Managed umgebung verwendet wird, bietet Dir die std lib gleiche Funktionalität. (es hätte dann halt eine std::list ein sollen )


Anmelden zum Antworten