4

たとえば、次のように漏れますか?

Foo ( )
{
   std:map<std:string, int> myMap;
   myMap[std::string("Bar")] = 2983;
}

漏れはないと思いますが、この点に関する特定のドキュメントは見つかりません。

4

3 に答える 3

5

はい、マップ デストラクタmap::~map()は、管理するすべてのキーと値に対してデストラクタを呼び出し、メモリを解放します。

§ 23.2.1 表 96 — コンテナ要件 (続き)

(&a)->X() void 
the destructor is applied to every element of a; all the memory is deallocated.
于 2013-10-03T11:42:43.123 に答える
4

はい、確かにそうです。これは C++ ではかなり標準的なものであり、基本的に標準ライブラリと STL のすべてがこのように機能します。つまり、生のポインタを保存しない限り、デストラクタは常に呼び出されます。

于 2013-10-03T11:26:12.167 に答える
0

を使用して動的にメモリを割り当てていませんnew。すべての変数はスタックに割り当てられます。ここでメモリリークは見られません。

于 2013-10-03T11:25:48.217 に答える