2014-11-14 72 views
-2

我的数据类型是顶点V,我将它用作模板。模板的布尔值声明

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

最后一行显示错误,要求仅输入积分参数。如何提高??

+0

q是指向队列的指针,而不是队列的实例。请示例队列! – 2014-11-14 13:49:04

回答

0

您无法在new bool[v1]中输入指针 - 用于分配。您需要一个整数值(如3,4等)或一个具有适当整数右值的左值,例如int c= 5; int s[] = new int[c];。这简直就是合法的行为准则。

+0

我想制作一个指向我的顶点访问的指针。我怎么能没有定义一个新函数 – Yash 2014-11-14 16:04:43

+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++中的pointeres知道多少。另外,我不明白你的意思是“为我的顶点访问”。你如何使用'* visited'? – ha9u63ar 2014-11-14 18:46:58