函数定义如下:
template <class TElemType>//迭代每条回边
void Graph<TElemType>::findvector(vector<ArcBox*> &ve)//需要一个参数a
{
int v;
int u;
vector<ArcBox*>::iterator Iter = ve.Begin();
for(; Iter != ve.End(); Iter++ )
{
//遍历容器,可以取出先前存放的值
u = Iter->headvex;//必经节点
v = Iter->tailvex;//起始节点
DFSOlgraph1(v, u, visited);
}
}
函数声明如下:
void findvector(vector<ArcBox*> & ve);
用了stl的vector,里面装着是指向arcbox的指针,所以参数我就写成这样了,arcbox定义如下:
struct ArcBox
{
int headvex,tailvex;
ArcBox *hlink,*tlink;
float weight;
};
编译器提示:
Graph<TElemType>::findvector”: 无法将函数定义与现有的声明匹配
定义
'void Graph<TElemType>::findvector(std::vector<Graph<TElemType>::ArcBox*> &)'
现有声明
'void Graph<TElemType>::findvector(std::vector<_Ty> *)'
我还有个地方不明白,如果我要调用findvector这个函数
在其他函数里,先定义一个vector<ArcBox*> a;
//code...
最后这样调用: findvector(a);
请问各位这样做行吗? |