2014-11-14 2 views
-2

Мой тип данных - это вершина V, и я использую его как шаблон.boolean декларация для шаблона

vector<Vertex*>* Graph::path(Vertex* v1, Vertex* v2) 
{ 
Vertex* temp; 
queue<Vertex*>* q; 
q->push(v1); 
bool *visited = new bool[v1]; 
} 

В последней строке отображается ошибка, запрашивающая ввод только встроенных аргументов. Как улучшить??

+0

q - указатель на очередь, а не экземпляр очереди. Пожалуйста, укажите очередь! –

ответ

0

Вы не можете ввести указатель в new bool[v1] - для назначения. вам нужно целое значение (например, 3,4 и т. д.) или lvalue, которое имеет соответствующее целочисленное значение r, например. int c= 5; int s[] = new int[c];. Это довольно простой синтаксический кодекс поведения.

+0

Я хочу сделать указатель, чтобы установить посещенный для моей вершины. Как я могу это сделать без определения новой функции? – Yash

+0

@YashJain Вы должны это понимать - ваши 'v1' и' v2' являются указателями объектов Vertex, это даже не указатель 'int'. Чтобы сделать 'bool * visited = new bool [v1]', вы должны иметь v1 как 'int'. Например, если у вас есть v1 = 5, это сработало бы. Даже если у вас есть v1 как указатель, указывающий на целочисленное значение, например. 'int * v1 = 5', вы могли бы использовать' bool * visited = new bool [* v1] 'где * v1 будет значением, на которое указывает v1 (т. е. 5). Я не знаю, как много вы знаете о указателях в C/C++. Кроме того, я не понимаю, что вы подразумеваете под «Set visited for my Vertex». Как вы используете '* visited'? – ha9u63ar

Смежные вопросы