mapにおけるerase

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
猫山こげお

mapにおけるerase

#1

投稿記事 by 猫山こげお » 12年前

こんばんは。
今まで特に意識をしていなかったのですが、mapにおけるeraseで要素を消したとき、その要素のメモリはどうなっているのか気になったので質問させていただきます。

コード:

struct mystruct{
};
map<int,mystruct> m;
pair<int,mystruct> p;
p.first = 1;
m.insert(p);
m.erase(1);
上記のような場合、pはメモリリークの原因となったりしないのでしょうか?

YuO
記事: 947
登録日時: 14年前
住所: 東京都世田谷区

Re: mapにおけるerase

#2

投稿記事 by YuO » 12年前

猫山こげお さんが書きました:こんばんは。上記のような場合、pはメモリリークの原因となったりしないのでしょうか?
mapにinsertされたのは,pのコピーです。
それをeraseで消したのですから,p自体は残ります。
ただ,正しくメモリ管理が出来ていれば,リークすることはないでしょう。

猫山こげお

Re: mapにおけるerase

#3

投稿記事 by 猫山こげお » 12年前

なるほど、pが代入されてるのではないのですね
スッキリしました。

閉鎖

“C言語何でも質問掲示板” へ戻る