Это похоже на проблему новичка, но я не могу понять это. Я хочу перебрать элементы в std :: vector. В настоящее время я использую этот цикл:
for (unsigned int i = 0; i < buffer.size(); i++) {
myclass* var = buffer.at(i);
[...]
}
Однако я понял, что на самом деле хочу перебирать его в обратном порядке: начиная с конца и работая до 0. Поэтому я попытался использовать этот итератор:
for (unsigned int i = buffer.size()-1; i >= 0; i--) {
myclass* var = buffer.at(i);
[...]
}
Но, просто заменив старую строку новой (и, конечно же, перекомпилировав), он перестанет работать должным образом и выполнять итерации по коду, вместо этого программа будет аварийно завершать работу при первом обращении к этой строке, ошибка:
http://i43.tinypic.com/20sinlw.png
Вслед за диалоговым окном «[Программа] перестала работать».
Программа также возвращает код выхода 3, в соответствии с Code :: Blocks, который (если эта статья должна считаться верной) означает ERROR_PATH_NOT_FOUND: система не может найти указанный файл.
Любой совет? Я просто что-то пропускаю в цикле for, что может вызвать проблемы с памятью? Код возврата 3 или статья вводят в заблуждение, и на самом деле это не означает «путь не найден»?