8

でいっぱいのマップがあり、メモリを完全に削除したいと思います。どうすればこれを正しく行うことができますか? このトピックに固有のものが見つかりませんでした。すでに回答されている場合は申し訳ありません...

私のコードは次のようなものです:

      for(std::map<short,std::string>::iterator ii=map.begin();   
ii!=map.end(); ++ii)
    {
        delete &ii;
    }

しかし、うまくいきません。誰でも助けてもらえますか?

よろしく、フィル

4

3 に答える 3

10

を呼び出すだけmap.clear();です。これにより、マップが内部的に割り当てたすべてのオブジェクトが解放されます。

タスク マネージャーなどのシステム ツールでは、アプリケーションが同じ量のメモリを占有している可能性があることに注意してください。プロセスが再度割り当てた場合に備えて、プロセスが保持していたメモリを再利用しないことを OS が決定する可能性は十分にあります。不足し始めた場合は、後で回収します。

于 2013-04-10T11:28:31.800 に答える