2012-03-12 9 views
0

マルチマップに割り当てられたメモリを解放するマルチマップがあります。MULTIMAPの場合に割り当てられるメモリが解放されることを確認するには

私はこれに関する質問を、Stackoverflow Will this code free memory allocated for MULTIMAP?にあるもう1つの質問で提起しました。

私の質問は、マルチマップで消去を使用すると、マルチマップに割り当てられたすべてのメモリスペースが解放されているかどうかを確認することですか?

+1

@nabulkeの後にちょっと繰り返します:スマートポインタの使用を検討してください。 –

+2

ちょっと意見がありますが、(OPのために)変数、ポインタ、割り振りなどの仕組みが分かります。 – Valmond

+0

@Ritesh:マルチマップが割り当てているメモリの違いを本当に理解していますか? )とメモリ__you__は(newを介して)要素に割り当てていますか?あなたがその違いを理解していれば、あなたは2つの割り当てのどちらを話していますか? – nabulke

答えて

1

begin()およびend()でclear()(またはerase)を使用すると、のすべてのメモリが割り当てられたマルチマップが解放されます。

これは、ストッキングintsのために完全にうまくいきます。

マルチマップにメモリを割り当ててストックポインタを割り当てる場合は、メモリを解放する必要があります。

"いつものように"動作します。あなたは割り当てます - >あなたはint、chars、およびmultimapsのために解放します。割り当てられたメモリを解放するのは彼らの責任です。

3

標準では、コンテナから要素を消去すると、その要素のすべてのメモリが割り当て解除されるかどうかは指定されません。唯一の保証は、消去された各オブジェクトのデストラクタが1回だけ呼び出されることです。私はメモリが解放されているという保証が必要な理由を想像することはできませんが、そうするなら、使用している特定の実装をチェックする必要があります。

関連する問題