Archief - C++: STL, map van vectors

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Xoliul

Legacy Member
Ik probeer mijn vraag hier ook weer eens :)
Ik zit even wat meer vergezochte dingen met STL te doen. Ik heb een map van tstrings en vectors (van pointers), dat is voor mij de makkelijkste manier van werken.
Nu wil ik dus die vector opvragen door op de key van die map te zoeken, maar ik krijg errors over map/set iterators die niet dereferencable zijn.

code (abstract voorgesteld, geen specifieke namen om verwarring te vermijden):

Code:
map<tstring, vector<ptr*>> m_VectorMap;

...

tstring keyString;
vector<ptr*> vect = m_VectorMap.find(keyString)->second; //dit geeft de error


Moet ik nog een functie op die second roepen ? Lijkt mij toch niks fout aan zoals het er nu staat.

killgore

Legacy Member
Xoliul zei:
Ik probeer mijn vraag hier ook weer eens :)
Ik zit even wat meer vergezochte dingen met STL te doen. Ik heb een map van tstrings en vectors (van pointers), dat is voor mij de makkelijkste manier van werken.
Nu wil ik dus die vector opvragen door op de key van die map te zoeken, maar ik krijg errors over map/set iterators die niet dereferencable zijn.

code (abstract voorgesteld, geen specifieke namen om verwarring te vermijden):

Code:
map<tstring, vector<ptr*>> m_VectorMap;

...

tstring keyString;
[B]vector<ptr*> vect = m_VectorMap.find(keyString)->second; //dit geeft de error[/B]


Moet ik nog een functie op die second roepen ? Lijkt mij toch niks fout aan zoals het er nu staat.

Werkt dit niet?

Code:
vector<ptr*>& vect = m_VectorMap[keyString];
Heh, nocturn zen reply gemist, daar staat alles in, negeer maar.

Xoliul

Legacy Member
Idd, ik checkte niet of hij echt iets vond (hij zou meestal niks mogen vinden). Ik vang de iterator nu op en check eerst of hij niet gelijk aan m_VectorMap.end() is, zoals nocturn's code. Thx!
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan