私はこのハッシュ マップを書きました (これは電話インタビューの演習の一部でした) new Node(key, value)
。ハッシュマップ自体が範囲外になったときにクリーンアップしていることを確認したい.
ここで何か見逃しましたか?メモリリークがあるかどうかを確認する方法はありますか?
class HashMap {
private:
list<Node*> data[SIZE];
public:
~HashMap();
Node* get(int key);
void put(int key, int value);
int hashFn(int val){ return val % 13; }
};
HashMap::~HashMap(){
for(int i = 0; i < SIZE; ++i){
list<Node*>& val = data[i];
for(list<Node*>::iterator it = val.begin(); it != val.end(); it++){
Node* n = *it;
delete n;
}
}
}
好奇心のために: 完全なコードはこちら: http://rextester.com/EHPCYW12862
編集:
また、最後にlist.clear () を呼び出す必要がありますか (リスト内のすべてのノードの割り当てを既に解除しているため)。