Durch Strukturelemente iterieren???
-
Hallo,
ich suche eine Möglichkeit, mit der man durch die Strukturelemente einer beliebigen Struktur iterieren kann, ähnlich einer Liste, etc..
Gibt es sowas, kann mir da jemand weiterhelfen?lg,
hade79
-
eine std list erstellen und strukturen oder pointer auf strukturen drin speichern und dann iterieren? oder wie oder watt?
-
sowas wie:
struct beispiel{
short a;
int b;
char c;
}beispiel.front() // a
beispiel.next() oder beispiel++ // bsizeof(beispiel.front()) // 16 oder 32 bit
for(int i; i < beispiel.members() /*anzahl elemente der struktur*/; i++)
{
cout << sizeof(beispiel.elementAnStelleWoIchMitIteratorGeradeStehe) << endl;
beispiel++;
}Verständlicher?
-
geht nicht ohne weiteres, bzw es wäre ein ziemlicher hack dazu nötig
-
Wenn du eine schöne Lösung willst:
A) Sprache wechseln (z.B. zu C# oder Java)
Datenstruktur verändern (Map. etc)
-
Gibts ned ist immer ne doofe Antwort
Besser waer:
In C++ will man sowas gar ned !
Sprich dein Problem ist im Design, also eine oder mehrere Stufen weiter oben.
In anderen Sprachen geht das auch nur mit imensen kruecken ....Also erklaer vielleicht mal, wozu Du das brauchst ... dann kann man gemeinsam andere besserere loesungen suchen ...
Ciao ...
-
RHBaum schrieb:
In anderen Sprachen geht das auch nur mit imensen kruecken ....
Du hast dich noch nicht arg mit Reflection in C# geschäftigt, oder?
-
Neee, aber C# komplett ist fuer mich ne Kruecke
Ok, weg von den Vorurteilen, schoen wenn es da sowas gibt .... Ich denk aber wirklich mehr in c++, und da gibts seltener Faelle wo man das braucht.
Ok, in C++ kann man schon sowas aehnliches mit templates nachbauen, Typlisten die sind aber etwas sehr eigen im Umgang ...Und jetzt dir frage, wofuer braucht man das in C#?
Ciao ...
-
RHBaum schrieb:
Und jetzt dir frage, wofuer braucht man das in C#?
Für solche Fälle wie hier.
-
interpreter schrieb:
RHBaum schrieb:
Und jetzt dir frage, wofuer braucht man das in C#?
Für solche Fälle wie hier.
und wann ist so ein fall gegeben?
-
Also Sinn und Zweck des Ganzen soll(te) sein, ein nicht von mir geschriebenes Programm zu erweitern.
Man liest dabei aus einem file bytes in eine feste struktur ein (read(sizeof)).
War bisher auch kein Problem, nur jetzt kann es sein, dass das, was eingelesen wird entweder LSB oder MSB (früher immer MSB, deshalb kein Thema) ist.
Jetzt muss man aber je nachdem, was es denn jetzt ist, die Bytes für jedes einzelne Mitglied der Struktur vertauschen.Mir ist klar, dass man das Problem auch anders lösen kann, aber so hätte man nicht viel am vorgegebenen Programm ändern müssen.
MfG,
hade79