Hi,
Hab grad versucht, std::map zu verwenden, um Statuswerte zu speichern (status_map["attack"] = 25 zum Beispiel).
In meiner Klasse, wo ich die Map benutze, hab ich eine Funktion, die alle Statuswerte erhöhen soll.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
|
void Status::Increase()
{
map<string, StatValue>::iterator i;
for(i = m_stat_map.begin();
i != m_stat_map.end();
++i)
{
i->second.Increase();
}
}
|
StatValue ist eine von mir angelegte Klasse mit den Variablen für den jetzigen Wert, den Grundwert, und den Wert, um den es erhöht wird. Es hat eine Methode Increase(), die den Erhöhungswert zum momentanen Wert hinzuzählt.
m_stat_map ist eine map<string, StatValue>, die als private Variable deklariert wurde.
Wenn ich das Programm ausführe, erhalte ich eine Errorbox mit:
|
Quellcode
|
1
2
3
|
Debug Assertion FailedProgram : ***Line: 321
Expression: map/set iterators incompatible
[Abbrechen] [Wiederholen] [Ignorieren]
|
Weiß jemand, woran das liegt? Und wie man es beheben kann?