注册 登录
编程论坛 C++教室

subscript requires array or pointer type

heyyroup 发布于 2007-12-04 14:22, 3276 次点击
在写最短路径算法的时候出现问题:subscript requires array or pointer type
算法的代码我贴出来,希望大家帮我看看是哪里出错了.
void Graph::ShortestPath(VertexType & v)
{
    int pos=GetVertexPos(v);  //取得顶点值为v在数组中的位置
    for(int i=0;i<NumVertices;i++)    //NumVerteces为图中的结点个数
    {
        dist[i]=Matrix[pos][i];                 //邻接矩阵的第pos行元素复制到dist中
        WeightFound[i]=0;                   //已求出最短路径的顶点集合初始化
        if(i!=pos&&dist[i]<MaxNum)
            path[i]=pos;
        else
            path[i]=-1;                         //路径存放数组初始化
    }
    WeightFound[i]=1;                     //将顶点v加入到顶点集合
    dist[pos]=0;
    for(i=0;i<NumVertices-1;i++)
    {
        double min_value=MaxNum;
        int u=pos;
        for(int j=0;j<NumVertices;j++)
            if(!WeightFound[j]&&dist[j]<min_value)
            {
                u=j;
                min_value=dist[j];
            }
        WeightFound[u]=1;
        for(int w=0;w<NumVertices;w++)
            if(!WeightFound[w]&&(dist[u]+MaxNum[u][w]<dist[w]))
            {
                dist[w]=dist[u]+Matrix[u][w];
                path[w]=u;
            }
    }
   
}
在红色代码出编译的时候提示出现错误
dist[],path[],weightFound[]是在类Graph里面定义的
1 回复
#2
heyyroup2007-12-04 14:44
搞定了,笔误笔误,我把数组的名字Matrix写成MaxNum,难怪出错.
1