以下のコードでは、出力を次のように表示する代わりに、
0 -> 1 2
1 -> 2 3
..
..
99 ->100 101
私は次のように出力を得ています、
0 -> 100 101
1 -> 100 101
...
99 -> 100 101
この問題を解決する方法を教えてください。正確にどこが間違っているのでしょうか? 私が見つけたデバッグ中に、最初の反復でそれが保存されます
0 -> 1 2
2 回目の反復では、次のように更新されます。
0 -> 2 3
1 -> 2 3
なんで?
class abc{
public:
int x, y;
};
std::map<int, abc*> MAP;
int main()
{
abc *ab;
ab = new abc();
int i = 0;
for(i = 0; i < 100; i++)
{
ab->x = i + 1;
ab->y = i + 2;
MAP.insert(std::pair<int, abc*>(i, ab));
}
map<int, abc*>::iterator it;
for(it = MAP.begin(); it != MAP.end(); it++)
{
cout << it->first << "->" << it->second->x <<" "<< it->second->y << endl;
}
system("pause");
return 0;
}