错误:对不同类型变量定义相同变量名

error: declaration of ‘std::vector<edgeNode > v’ shadows a parameter|

原因:函数的参数列表中已经有变量R了,在函数体内新定义一个R就会覆盖原有变量,因而报错。

这英文我也不会翻译hhh,但是从下面的错误代码中我们可以看出函数传入的一个参数叫v,而我自己定义的一个vector变量也叫v,所以报出了上面的错误,大家如果也报出这样的错误,可能也是这个原因。

改正就把vector变量名改成其他的就好了,想取啥名就取啥。

int GetNextAdjVex(int u,int v){
    
    //就是说第u行的第v+1个顶点
            if(u<0||u>=Vers||v<0||v>=Vers)
                return false;
            int w=-1,k=0;
            vector<edgeNode<TypeOfEdge> > v;
            edgeNode<TypeOfEdge> *p=verList[u].head;
            while(p){
    
    
                v.push_back(*p);
                p=p->next;
                ++k;
            }
            for(int i=v+1;i<k;++i){
    
    
                if(v[i].data!=v)
                    return i;
            }
            return -1;
       }

猜你喜欢

转载自blog.csdn.net/xiatutut/article/details/125631676