Das ist sicher eine ganz einfache Frage, aber ich wäre für jede Hilfe dankbar :)
Hier ist meine Variable in der .h-Datei:
map<int, map<int, map<int, CString>*>*> batch;
Hier versuche ich, einen Wert zuzuweisen:
((*((*(batch[atoi(transnum)]))[1]))[atoi(*docnum)]) = page;
Ich fügte einige zusätzliche Klammern hinzu, während ich versuchte, dies herauszufinden, um sicherzustellen, dass die Derefs in der richtigen Reihenfolge verarbeitet wurden - leider funktioniert es immer noch nicht. Meine Anwendung stürzt einfach ab, wenn diese Zeile ausgeführt wird. Ich habe sie in ein try {} catch {} eingeschlossen, aber es scheint keine Ausnahme ausgelöst zu werden. Ich verwende C++ nicht sehr oft und frage mich, ob mir jemand sagen kann, was ich falsch mache.
Hier ist die Beziehung, die ich zu modellieren versuche:
Liste der Transaktionsnummern (ganze Zahlen), muss nach Schlüssel geordnet werden.
Für jede Transaktionsnummer habe ich zwei Typen von Dokumenten, Zahlungen und Rechnungen (in meiner obigen Datenstruktur durch 0 bzw. 1 dargestellt)
In jedem Eimertyp kann es Folgendes geben ein oder mehrere Dokumente Diese Dokumente müssen nach ID (docid) geordnet werden.
Jede docid verweist auf eine Zeichenfolge, die aus einer durch Komma getrennten Liste von Dateien im Dateisystem besteht, die verarbeitet werden sollen.
Wenn Sie der Meinung sind, dass es eine bessere Datenstruktur gibt, würde ich das gerne hören.
EDITAR: Ich weiß, dass es viele bessere Möglichkeiten gibt, dies zu tun. Das Szenario war, dass man mir einen Haufen schrecklichen, mit MFC überladenen C++-Code in die Hand drückte und mir sagte, ich solle gestern etwas erledigen. Im Grunde genommen ging es darum, die Datenstruktur dort hineinzubekommen, sie zu laden und sie dann irgendwo anders auszugeben. Ich habe nur versucht, es schnell herauszubekommen, als ich diese Frage stellte. Ich schätze jedoch die Designvorschläge.