Iteratory a wskaźniki do obiektu

0

Witam. Mam mały problem z c++ a przedstawia się on następująco:

Mam w programie do listę obiektów typu MojaKlasa (standardowa lista stl):

list<MojaKlasa> Lista;

Następnie tworzę iterator do tej listy:

list<MojaKlasa>::iterator iter = Lista.begin();

Mam również tablicę wskaźników do obiektów MojaKlasa

MojaKlasa * tablica[10][10];

I teraz mój problem. Chcę zapisywać w konkretne miejsca tablicy wskaźnik do obiektu aktualnie pokazywanego przez iterator. Przez google znalazłem takie coś:
tablica[0][0] = &(*iter);

ale potem ktoś skomentował, że to jest nie poprawne - u mnie się kompiluje ale po odpaleniu programu jest błąd.

próbwałem dobierać do różnych składowych iteratora jak np. _Ptr (sugerowało mi to wskaźnik do obiektu), testowałem różne kombinację ale nie dałem rady.

Używam Visual Studio 2008.

Jeśli ktoś ma jakiś pomysł jak rozwiązać mój problem (jeśli w ogóle się da) to proszę o pomoc.

0

A bez &?

0

chodzi Ci o (*iter)?? jeśli tak, to jest to obiekt, a ja chce mieć wskaźnik do obiektu (nie chce robić tablicy obiektów bo to zżera pamięć).

0

Sorry, przez przyzwyczajenie przyjąłem, że robisz listę z obiektów które są wskaźnikami. W takim razie & chyba faktycznie nie będzie działać, bo *iter zwróci to na co pokazuje przez wartość. Nie możesz stworzyć listy:

list<MojaKlasa *> Lista;

?</b>

0

no ostatecznie mogę ale wolę mieć listę obiektów. innym rozwiązaniem jakie przyszło mi do głowy to zrobić tablicę iteratorów a nie wskaźników, ale to też ostateczność jeśli nie zdążę do piątku wykombinować czegoś sensowniejszego.

0

W takim razie & chyba faktycznie nie będzie działać, bo *iter zwróci to na co pokazuje przez wartość.

Nie do końca. Zwróci przez referencję, no chyba że jest to const_iterator (choć i tu nie wykluczone, że zwróci przez const referencję).

1 użytkowników online, w tym zalogowanych: 0, gości: 1