我确信有更好的方法可以做到这一点。
我正在尝试创建一个在实例化时给出大小的类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
};
从我所看到的,vector是这里使用的最佳数据结构,因为它允许我在构造函数中给它一个大小,并允许我使用myTable[index]
样式表示法来访问它的内容。但是,VS2010不喜欢我对vector<* TableNode<T>>
的使用,我不能说我责备它。那么,我如何创建一个数组或向量或任何指向TableNode<T>
元素的指针?
答案 0 :(得分:2)
移动星号:
vector<TableNode<T>*> myTable;
myTable = vector<TableNode<T>*>(size,NULL);
答案 1 :(得分:0)
vector<TableNode<T>*> myTable;
myTable = vector<TableNode<T>*>(size,NULL);
FTFY。