ページ 1 / 1
mapにおけるerase
Posted: 2012年11月28日(水) 23:45
by 猫山こげお
こんばんは。
今まで特に意識をしていなかったのですが、mapにおけるeraseで要素を消したとき、その要素のメモリはどうなっているのか気になったので質問させていただきます。
コード:
struct mystruct{
};
map<int,mystruct> m;
pair<int,mystruct> p;
p.first = 1;
m.insert(p);
m.erase(1);
上記のような場合、pはメモリリークの原因となったりしないのでしょうか?
Re: mapにおけるerase
Posted: 2012年11月29日(木) 02:55
by YuO
猫山こげお さんが書きました:こんばんは。上記のような場合、pはメモリリークの原因となったりしないのでしょうか?
mapにinsertされたのは,pのコピーです。
それをeraseで消したのですから,p自体は残ります。
ただ,正しくメモリ管理が出来ていれば,リークすることはないでしょう。
Re: mapにおけるerase
Posted: 2012年11月29日(木) 16:08
by 猫山こげお
なるほど、pが代入されてるのではないのですね
スッキリしました。