3
map<int, map<int, vector<string> > > test;
// some statement to assign values to test
test.clear();

テストで使用されたすべてのメモリを解放するのに十分以上ですか、それともマップを反復して内側のマップとベクトルを 1 つずつ解放する必要がありますか?

4

2 に答える 2

7

はい、あなたのコードは内部マップとそこに含まれるベクトルをクリアするのに十分です。コンテナのデストラクタは、マップのキーと値に保持されているリソースをクリアします。もちろん、空になったマップ自体は、スコープ外になるか、所有者オブジェクトが削除されて破棄されるまで、割り当てが解除されることはありません。

于 2013-06-19T20:40:14.753 に答える
1

すべてのサブコンテナーによって割り当てられたすべてのメモリを解放するだけで十分です。これは、すべての STL コンテナーに当てはまります。

于 2013-06-19T20:40:49.993 に答える