请告诉我这里是否需要更多信息: 全球声明:
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++)
{
...............
}
答案 0 :(得分:3)
如果您使用vector <route> *objRouteVector
作为参数,则需要(*objRouteVector)[h].exitPoint
。更好的是使用引用:vector <route> &objRouteVector
。
答案 1 :(得分:2)
你拿了一个指向objRouteVector的指针,你需要参考一下。你的代码索引objRouteVector没有索引向量 - 它正在索引指针。