ошибка: 'класс std :: vectorне имеет члена с именем exitPoint - PullRequest
0 голосов
/ 29 июня 2011

Скажите, пожалуйста, нужна ли здесь дополнительная информация: Глобальные объявления:

    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 ]

3 голосов
/ 29 июня 2011

Если вы используете vector <route> *objRouteVector в качестве параметра, вам нужно (*objRouteVector)[h].exitPoint.Лучше использовать ссылку: vector <route> &objRouteVector.

2 голосов
/ 29 июня 2011

Вы взяли указатель на objRouteVector, вам нужно взять ссылку.Ваш код, индексирующий objRouteVector, вообще не индексирует вектор - он индексирует указатель .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...