Как бы реализовать массив Hashtables в C++?Каков правильный синтаксис инициализации массива хэш-таблиц в C++?
У меня есть хеш-класс с конструктором, который выглядит следующим образом:
explicit ChainingHashTable(const HashedObj & notFound, int size = 101);
Так что я попытался сделать массив этих хеш-таблицы, выполнив:
static ChainingHashTable<int> answers[5] = { {0, 500}, {0, 500}, {0, 500}, {0, 500}, {0, 500} };
однако, я получаю следующие ошибки & предупреждения:
browser.cpp:106:71: warning: extended initializer lists only available with -std=c++0x or -std=gnu++0x [enabled by default]
browser.cpp:106:71: error: converting to ‘ChainingHashTable<int>’ from initializer list would use explicit constructor ‘ChainingHashTable<HashedObj>::ChainingHashTable(const HashedObj&, int) [with HashedObj = int]’
Я не могу использовать другой компилятор потому что это для присвоения класса, но что я делаю неправильно? Каков правильный синтаксис?
Он создается в классе/объекте, так Кроме того, как бы инициализировать его в конструкторе? – kabirpong
Возможный дубликат [Инициализировать статический член (массив) в C++] (http://stackoverflow.com/questions/2570235/initialize-a-static-member-an-array-in-c) –
Простейшим решением является избегая проблемы: не используйте массивы, а скорее векторы. –