reneling schrieb:
Aber wieso auf eine feste Größe beschränken?
Die Länge des Arrays sollte die größtmögliche Verdampfungsverzögerung abdecken. Ich dachte man muss bei jedem Array die Anzahl der Zeilen/Spalten vorgeben.
Du bist so sehr auf Arrays fixiert, das zeigt auch dein Fortran-Hinweis. In C++ hast du schon von der Standardbibliothek viele verschiedene Datenstrukturen für unterschiedliche Zwecke optimiert. Es gibt keinen Grund, künstlich einem Array eine andere Struktur aufzudrücken, weil das nicht die einzige Datenstruktur ist, die in C++ einfach zu nutzen ist.
Beispiel: die Solverzeit ist bei 3e-5. Lese den aktuellen Wert für das verdampfte Wasser=1 Wert. Lösche die Zeile. Die Verzögerung ist 1,4563e-5. Schreibe den Wert bei Zeit =3e-5+1,4563e-5= 4,4563e-5 (Abrunden und in die nächste Zeile oder eine Zeile einfügen?)
Ich möchte die Werte/Zeit-Tabelle auswerten, um z.B. ein Wert dazwischen zu schreiben.
Ehrlich gesagt verstehe ich es immer noch nicht.
Haben deine Daten einen Zeitstempel?
Ja, aber ich möchte diese sortiert hineinschreiben, da sonst bei dem nächsten Zeitschritt der Wert an falscher Stelle steht.
Datenstruktur ein Wertepaar/tripel aus Zeitstempel, Verzögerung und dem eigentlichen Wert
Wie sortiere ich dann? Ist es möglich?
Es gibt selbstsortierende Datenstrukturen, z.B. ein set. Suchst du das? Ansonsten kannst du auch versuchen, an der richtigen Stelle in einem der sequence containers einzufügen, was jedoch unter Umständen nicht sehr performant ist - kommt auf die Nebenbedingungen an.
Ich hoffe übrigens mal, dass du dir inzwischen mal durchgelesen hast, welche Datenstrukturen es in C++ alle schon fix und fertig gibt:
http://en.wikipedia.org/wiki/Associative_containers_(C%2B%2B)
http://en.wikipedia.org/wiki/Sequence_container_(C%2B%2B)
http://stackoverflow.com/questions/10699265/how-can-i-efficiently-select-a-standard-library-container-in-c11 (Lies nicht nur das bild in der Frage, sondern mindestens auch die Antwort von Matthieu M.)