クラス HashMap があり、すべて正常に動作しているように見えますが、メモリリークに問題があります。
以下は私の HashMap クラスのプライベートメンバー変数/関数です
struct Node
{
std::string key;
std::string value;
Node* next;
};
HashFunction hashfunction;
Node** bucketList;
int* numberOfPairs;
int logins;
int lengthOfMap;
そして、ここに私のデフォルトのコンストラクターがあります:
HashMap::HashMap()
:hashfunction(hash), bucketList(bucketList = new Node*[INITIAL_BUCKET_COUNT]), numberOfPairs(numberOfPairs = new int[INITIAL_BUCKET_COUNT]),
logins(0),lengthOfMap(INITIAL_BUCKET_COUNT)
{
for(int i = 0; i < INITIAL_BUCKET_COUNT; i ++)
{
bucketList[i] = nullptr;
}
zeroFillArray(numberOfPairs, INITIAL_BUCKET_COUNT);
}
ノードの配列を指すbucketListポインターがあり、各ノードはリンクされたリストの先頭を指します。
今のところ、これは私のデストラクタです:
HashMap::~HashMap()
{
delete numberOfPairs;
delete bucketList;
}
リストを削除する前に、リスト内の各ノードを削除しますか (朝にこれに取り組みますが、関係なく質問したかったのですが)、それとも他の何かが完全に欠落していますか?