To naprawdę łatwe pytanie, ale jestem wdzięczny za pomoc. :)Pomoc przy częściowo złożonym przypisaniu C++
Oto moja zmienna w pliku .h:
map<int, map<int, map<int, CString>*>*> batch;
Oto ja próbuje przypisać wartość:
((*((*(batch[atoi(transnum)]))[1]))[atoi(*docnum)]) = page;
dodałem jakieś dodatkowe nawiasy podczas próby rysunek to w porządku aby upewnić się, że derefy były przetwarzane we właściwej kolejności - niestety nadal nie działa. Moja aplikacja ulega awarii po uruchomieniu tej linii. Mam go zapakowany w try {} catch {}, ale nie wydaje się, aby wyjątek został zgłoszony. Nie używam C++ bardzo często i zastanawiam się, czy ktoś może mi powiedzieć, co robię niepoprawnie.
Oto relacja Próbuję modelu:
Lista liczby transakcji (liczby całkowite), musi być uporządkowane według klucza.
Dla każdej liczby transakcji, mam dwa rodzajów z dokumentów, płatności i faktur (wiadrach reprezentowanych przez 0, a następnie 1 odpowiednio w moim struktury danych powyżej)
W każdym segmencie typu, istnieje może być jeden lub więcej dokumentów, dokumenty te muszą być zamawiane przez id (docId)
Każdy docId linki do łańcucha, który składa się z listy przecinkowym f iles w systemie plików do przetwarzania.
Jeśli uważasz, że istnieje lepsza struktura danych do wykorzystania, byłbym zainteresowany, aby to usłyszeć.
EDYCJA: Wiem, że istnieje wiele lepszych sposobów, aby to zrobić. Scenariusz był taki, że dostałem stertę okropnego kodu C++ z MFC i powiedziałem, żeby coś wczoraj zrobiło. Zasadniczo sprowadzała się do uzyskania struktury danych, ładowania jej, a następnie wyprowadzania w inne miejsce. Próbowałem go szybko rozwalić, gdy zadałem to pytanie. Doceniam jednak sugestie dotyczące projektu.
Pozbyłbym się CStringa i użyłbym std :: string. Czy mapa (i podelementy mapy) jest już wypełniona? Być może próbujesz uzyskać dostęp do pustych pozycji lub je przypisać. Co próbujesz osiągnąć? Wygląda mi to na okropny kod. – Tim
także - czym są dokumenty i transnum? – Tim
Zgadzam się z Timem. Za każdym razem, gdy widzisz zagnieżdżone klasy kontenerów, jest to dobry znak, że musisz utworzyć własną klasę, która będzie reprezentować niektóre lub wszystkie zdefiniowane struktury danych. – rmeador