错误:'class std :: vector <route,std :: allocator <route =“”>&gt;'没有名为'exitPoint'的成员</route,>

时间:2011-06-29 11:56:16

标签: c++ vector

请告诉我这里是否需要更多信息: 全球声明:

    typedef struct route
    {
        int          exitPoint;
        bool         allBranchesTraversed;
    } route;

   ****vector <route> routeVector;****

罪魁祸首是来自:

int main ()
{
....
    do
    {
        ****currentExitPoint = returnShortestWeightedBranch (&routeVector);****
        if (currentExitPoint != -1)
        {
            objRoute.exitPoint = currentExitPoint;          
            routeVector.push_back (objRoute);
        }
        else
        {
          break;
        }
    } while (1);
}

错误在 **

的行中的此函数中
int returnShortestWeightedBranch (vector <route> *objRouteVector)
{
....    
    for (unsigned int h = 0; h < objRouteVector->size (); h++)
    {
        // Locate 'currentExitPoint' in the vector 'exitPointDetailsVector'.
        for (i = 0; i < exitPointDetailsVector.size(); i++)
        {       
            // If located
            ****if (objRouteVector[h].exitPoint == exitPointDetailsVector[i].exitPoint)****
            {
                // For all the branches of the 'currentExitPoint',
                for (j = 0; j < exitPointDetailsVector[i].branchesVector.size(); j++)
                {

...............
}

2 个答案:

答案 0 :(得分:3)

如果您使用vector <route> *objRouteVector作为参数,则需要(*objRouteVector)[h].exitPoint。更好的是使用引用:vector <route> &objRouteVector

答案 1 :(得分:2)

你拿了一个指向objRouteVector的指针,你需要参考一下。你的代码索引objRouteVector没有索引向量 - 它正在索引指针