原因不明のベクトル範囲外エラーが発生しました!
for (unsigned int i = 0; i < studentsVector.size(); i++) {
bool anyFailedFacultyCourse = false;
bool anyFailedElectiveCourse = false;
// Check if all faculty courses are done
std::cout << currentSemester << std::endl;
if (currentSemester > 1) {
std::cout << "hi" << std::endl;
for (int j = 0; j < currentSemester - 1; j++) {
if (studentsVector.at(i)->getPlan().at(j).size() > 0) {
anyFailedFacultyCourse = true;
}
}
std::cout << "bye" << std::endl;
AnyFailedFacultyCourse
デバッグ後、プログラムが最初の for ループに入り、 andに適切な値を割り当てanyFailedElectiveCourse
、 int を出力することに気付きましたcurrentSemester
。そして、そこで止まります!デバッグ ブレークポイントを次の場所に配置します。
if (currentSemester > 1)
out_of_range error
そして、それはチェックする前に私に与えるだけです! 入り込めないという意味if (currentSemester > 1)
ですが、その間には何もありません!つまり、エラーがスローされたときに、どのベクトルにも何もしなかったのに、どうしてそのようなものをスローできるのでしょうか。
私はこれが一種の謎であることを知っています.あなたが必要とするさらなる情報を求めてください.
詳細情報: 学生ベクトルの宣言方法:
std::vector<Student*> studentsVector;
currentSemester:
int currentSemester = 1;