Forum: Mikrocontroller und Digitale Elektronik C++ verschachtelten vector in Datei schreiben


von Stefan (Gast)


Lesenswert?

Moin,

ich habe eine struct die wie folgt aussieht und eine Art Netzwerk 
repräsentiert:
1
struct node_t {
2
    int id;
3
    int devtype;
4
    vector<node_t*> childs;
5
    node_t *parent;
6
};

Wie könnte ich am besten so eine verkette Struktur im Speicher in eine 
Datei kriegen, und dann auch wieder aus der Datei aufbauen?

Gruß
Stefan

: Verschoben durch User
von B. S. (bestucki)


Lesenswert?

Stichwort: De-/Serialisierung
https://isocpp.org/wiki/faq/serialization

Zusätzlich empfehle ich dir, deine Zeiger durch smart pointer zu 
ersetzen, dann musst du dich nicht selbst um die korrekte Zerstörung der 
Objekte kümmern.
Ich weiss nicht, wie sich dein devtype zusammensetzt, aber evt. könnte 
man daraus eine enum class machen. So können durch Tippfehler keine 
ungültigen Werte zugewiesen werden (ausser mit static_cast).

von Fer T. (fer_t)


Lesenswert?

be s. schrieb:
> Zusätzlich empfehle ich dir, deine Zeiger durch smart pointer zu
> ersetzen, dann musst du dich nicht selbst um die korrekte Zerstörung der
> Objekte kümmern.

Dazu empfehle ich:
https://channel9.msdn.com/events/GoingNative/2013/Opening-Keynote-Bjarne-Stroustrup
Besonders da der Abschnitt über Smart Pointer, GC etc (glaube ab 30 
Minuten oder so).

Und @topic: Guck dir mal google Protocoll Buffer an:
https://developers.google.com/protocol-buffers/

MfG

: Bearbeitet durch User
von Stefan (Gast)


Lesenswert?

Super, vielen Dank! Habe es wie auf isocpp erklärt gelöst. Smartpointer 
muss ich mich erst noch einlesen, da ist der Groschen noch nicht 
gefallen...

Stefan

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.