2010-10-07 5 views
1

Je suis sûr qu'il y a une meilleure façon de faire cela. J'essaie de créer une classe HashTable qui reçoit une taille à l'instanciation, donc je ne peux pas lui donner une taille au moment du design, donc je ne peux pas utiliser un tableau comme représentation interne de la table, Pour autant que je sache.Créer un vecteur de pointeurs vers des objets abstraits

Alors, voici ce que je suis en train de faire: D'après ce que j'ai vu

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

, vecteur est la meilleure structure de données à utiliser ici, car il me permettra de lui donner une taille dans le constructeur , et me laisse utiliser la notation de style myTable[index] pour accéder à son contenu. Cependant, VS2010 n'aime pas mon utilisation de vector<* TableNode<T>> et je ne peux pas dire que je le blâme. Alors, comment créer un tableau ou un vecteur ou n'importe quel pointeur sur des éléments TableNode<T>?

+0

Quelle erreur obtenez-vous – rerun

Répondre

2

Déplacer l'astérisque autour:

vector<TableNode<T>*> myTable; 

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

TPTA.

Questions connexes