Это первая часть моей функции, которая вызывает сбой моей программы:
vector<Student> sortGPA(vector<Student> student) {
vector<Student> sorted;
Student test = student[0];
cout << "here\n";
sorted.insert(student.begin(), student[0]);
cout << "it failed.\n";
...
Она падает прямо в части sorted
, потому что я вижу «здесь» на экране, но не"это не удалось."Появляется следующее сообщение об ошибке:
Debug Assertion Failed!
(a long path here...)
Expression: vector emplace iterator outside range
For more information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
Я не уверен, что вызывает проблему сейчас, так как у меня есть аналогичная строка кода в другом месте student.insert(student.begin() + position(temp, student), temp);
, которая не падает (где position
возвращаетint и temp
- это еще одно объявление структуры Student).Что я могу сделать, чтобы решить проблему, и чем первая вставка отличается от второй?