此功能给我错误,例如:
错误:' vertice'不能出现在常量表达式
中错误:模板参数1无效
错误:`iterator'没有命名类型
list< list<vertice> >::iterator extraiLista(string vertice, list< list<vertice> >& listaVertices){
list< list<vertice> >::iterator itVert;
for(itVert = listaVertices.begin(); itVert != listaVertices.end(); itVert++){
list<vertice>::iterator aux = itVert->begin();
if(aux->nome == vertice)
return itVert;
}
return NULL;
}
&#39;顶点&#39;是我创建的结构,我在其他函数中使用它没有任何问题。只是这一个给我带来麻烦的。我认为问题可能出在迭代器上,但我在另一个函数中尝试了它并且它有效。
答案 0 :(得分:2)
在函数中,vertice
是函数参数的名称,而不是它隐藏的类型。
要参考类型,您可以详细说明:
list<class vertice>
或符合条件:
list<::vertice> // assuming it's in the global namespace
但为参数选择不同的名称可能会更好。
答案 1 :(得分:1)
你至少犯了两个错误。
错误1:
string vertice, list< list<vertice> >
&#34;顶点&#34;不能同时是一个类型名称(如list<list<vertice> >
)和变量(如string vertice
中所示)。
错误2:
return NULL;
您的函数返回list<list<iterator> >
。在C ++中,NULL
是int
。 int
到list<list<iterator> >
没有投标。