Я уверен, что есть лучший способ сделать это.
Я пытаюсь создать класс HashTable
, которому присваивается размер при создании экземпляра, поэтому он не может быть задан во время разработки, поэтому я не могу использовать массив в качестве внутреннего представления таблицы Насколько я знаю.
Итак, вот что я пытаюсь сделать:
#include <vector>
#include <iostream>
#include "Nodes.h"
using namespace std;
template <class T>
class HashTable{
protected:
vector<* TableNode<T>> myTable;
//other protected methods go here
public:
HashTable(int size){
myTable = vector<* TableNode<T>>(size,NULL);
}
//The rest of the class
};
Из того, что я видел, вектор - лучшая структура данных, которую можно использовать здесь, потому что она позволит мне указать размер в конструкторе и позволит использовать нотацию в стиле myTable[index]
для доступа к ее содержимому. Однако VS2010 не нравится мое использование vector<* TableNode<T>>
, и я не могу сказать, что виню это. Итак, как мне создать массив или вектор или любой другой из указателей на TableNode<T>
элементов?