map, iterator i pętla

0

Cześć, zauważyłem, że ten fragment kodu sprawia problemy. Pytanie, czy faktycznie może być niebezpieczny, a jeśli tak, to jak go zmienić.

Załóżmy, że MyMap to mapa zadeklarowana tak:

typedef std::map<int, Item *> MyMap;

Item to po prostu jakaś klasa.
I mam taki kod:

for(MyMap::iterator it = m_map->begin(); it != m_map->end(); ++it)
{
	Item * parent = (*m_map)[it->second->ParentHandle()];
//itd

Generalnie chodzi o odczyt iterowanej mapy za pomocą iteratora - tak jak powyżej. Czy to MOŻE być niebezpieczne?

0
Item *node=*(it->second),*parent=node->ParentHandle();
Item *parent=(*(it->second))->ParentHandle();

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