dynamische Mehrdimensionale Felder
-
Hi, ich habe folgendes Problem:
Ich möchte ein Bild von RGB nach HSV/HSI umrechnen und in einem
3-5 dimensionalem dynamischen Feld speichern.Da ich als obere Grenze 4096*4096*5 annehmen muß, wollte ich nun von statischen Feldern weg um Speicherplatz zu sparen, ohne aber auf Geschwindigkeit zu verzichten.
Ich dachte nun, ich könnte es so machen:
typedef std::pair<vector,vector> v_Pair; typedef std::vector<v_Pair> v_Field; v_Field test;
Mir macht jetzt das handling etwas Probleme, da ich mich immer erst durch die Vectoren hangeln muß, um an ein Element zu kommen.
Nun die große Frage, geht es schöner/schneller/besser?
-
FAQ - C++
da gibts ein thread zum thema, schöner finde ich aber http://www.boost.org/libs/multi_array/doc/index.html
-
Original erstellt von daishi:
**Da ich als obere Grenze 4096*4096*5 annehmen muß, wollte ich nun von statischen Feldern weg um Speicherplatz zu sparen, ohne aber auf Geschwindigkeit zu verzichten.
**Geht net. Speicher alloziieren kostet immer Zeit.
-
bei einer dynamischen verwaltung wirst du um die Zeiger nicht herum kommen. Versuch es doch mit einer Liste. da kannst du jedes Datenelement auf dem Heap ablegen, der reihe nach auslesen und verarbeiten.
struct "Element"
{
variabelentyp variable1
.
.
.
variabelentyp variablen
}
zeigervergiss nicht, dass in jedes Element ein zeiger auf das folgende element gesetzt werden muss.
aber heir benötigst du auch jede menge zeigeroperationen.