Создать вектор указателей на абстрактные объекты - PullRequest
1 голос
/ 07 октября 2010

Я уверен, что есть лучший способ сделать это.

Я пытаюсь создать класс 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> элементов?

Ответы [ 2 ]

2 голосов
/ 07 октября 2010

Переместить звездочку вокруг:

vector<TableNode<T>*> myTable;

myTable = vector<TableNode<T>*>(size,NULL);
0 голосов
/ 07 октября 2010
vector<TableNode<T>*> myTable;
myTable = vector<TableNode<T>*>(size,NULL);

FTFY.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...