错误:"类 std::vector<route,std::分配器<route>>"没有名为"exitPoint"的成员

error: ‘class std::vector<route, std::allocator<route> >’ has no member named ‘exitPoint’

本文关键字:lt gt route std exitPoint 成员 错误 分配器 vector      更新时间:2023-10-16

如果这里需要更多信息,请告诉我:全球申报:

    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++)
                {
...............
}

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

您获取了一个指向objRouteVector的指针,需要获取一个引用。您的代码索引objRouteVector根本没有索引向量,而是索引指针