0

私はハッシュクラスを書いています:

struct hashmap {
  void insert(const char* key, const char* value);
  char* search(const char* key);
 private:
  unsigned int hash(const char* s);
  hashnode* table_[SIZE]; // <--
};

insert() は、新しいペアを挿入するときに table[i] が空かどうかを確認する必要があるため、起動時にテーブル内のすべてのポインターを NULL に設定する必要があります。

私の質問は、このポインター配列table_は自動的にゼロに初期化されるのか、それともコンストラクターでループを手動で使用して配列をゼロに設定する必要があるのか​​ということです。

4

2 に答える 2

6

table_配列は、現在の設計では初期化されていませんint n;。ただし、コンストラクターで配列を値で初期化する (したがって、各メンバーをゼロで初期化する) ことができます。

struct hash_map
{
    hash_map()
    : table_()
    {
    }

    // ...
};
于 2013-08-08T07:30:24.960 に答える