Zweidimensionales Array nach einer Dimension sortieren



  • Hi,

    ich habe ein zweidimensionales Array mit Werten gefüllt:

    array<int, 2> ^myArray = gcnew array<int, 2>(100, 2);
    for (int x = 0; x < 100; x++)
    {
    myArray[x, 0] = irgendeineFunktion(x);
    myArray[x, 1] = x;
    }
    

    In der ersten Dimension steht also ein bestimmter Wert, in der zweiten die _Ausgangs_Position im Array.

    Jetzt möchte ich das Array nach der ersten Dimension sortieren, die ursprüngliche Position im Array soll aber noch in der zweiten Dimansion stehen.

    Wie kann man das machen?

    MfG Steffen



  • Ich würde in deinem Fall ein SortedDictionary statt einem 2-dimensionalem Array verwenden.

    System::Collections::Generic::SortedDictionary<int, int> ^sortDict
        = gcnew System::Collections::Generic::SortedDictionary<int, int>();
    

    Wenn du mit

    for (int x = 0; x < 100; x++)
    {
        sortDict->Add(irgendeineFunktion(x), x);
    }
    

    Werte übergibts, werden sie automatisch sortiert.

    Im Fall des Arrays werden 100*100 Werte reserviert, Du benötigst aber nur 100*2=200 Werte.


Anmelden zum Antworten