开发者

Create a vector of pointers to abstract objects

I'm sure there's a better way to do this.

I'm trying to create a class HashTable that is given a size at instantiation, so it can't be given a size at design time, so I can't use an array as my internal representation of the table, as far as I know.

So here's what I'm trying to do:

#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
};

From what I've seen, vector is the best 开发者_如何学JAVAdata structure to use here, because it will let me give it a size in the constructor, and lets me use myTable[index] style notation to access its contents. However, VS2010 doesn't like my use of vector<* TableNode<T>> and I can't say I blame it. So, how do I create an array or vector or whatever of pointers to TableNode<T> elements?


Move the asterisk around:

vector<TableNode<T>*> myTable;

myTable = vector<TableNode<T>*>(size,NULL);


vector<TableNode<T>*> myTable;
myTable = vector<TableNode<T>*>(size,NULL);

FTFY.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜