for (i = (routeVector.size() - 1); i >= 0; i--)
{
cout << "Connected to -> " << routeVector[i].exitPoint;
for (j = (routeVector.size() - 1); j >= 0; j--)
{
if (routeVector[i].selectedBranchesVector.size() > 0)
{
cout << "\n: routeVector[i].selectedBranchesVector[0].connectedExitPoint" <<
routeVector[i].selectedBranchesVector[0].connectedExitPoint;
******cout << "\nrouteVector[j].exitPoint:" << routeVector[j].exitPoint;
if (routeVector[i].selectedBranchesVector[0].connectedExitPoint == routeVector[j].exitPoint)
{
cout << "Connected to -> " << routeVector[i].selectedBranchesVector[0].connectedExitPoint;
}
}
}
}
私はセグメンテーションフォールトを与えています。 「routeVectorは」「selectedBranchesVector」に何も持っていなかった場合は論理エラー:セグメンテーションフォルトの原因を特定できません。
は、それがあれば内部にさえ達していないでしょう。
上記の問題の原因は何ですか?
EDIT 1:
問題をより明確にするために、私は文の二つの条件をプリントアウトし、エラーを見つめていたラインに表示されます。
構造体である:これはi
とj
の種類に依存している
typedef struct branch
{
unsigned int distance;
int connectedExitPoint;
} branch;
typedef struct route
{
int exitPoint;
vector <branch> selectedBranchesVector;
} route;
vector <route> routeVector;
exitPointとconnectedExitPointメンバーのタイプは何ですか? クラスであれば、問題はそのoperator ==()関数にもある可能性があります。 – SKi
@ User1コードを修正しました。上記を参照してください。 –
iとjのタイプは何ですか?型が符号なしで、 'routeVector'が空の場合、'(routeVector.size() - 1) 'は正の値になります。 – SKi