[C++]std::vector<>::iterator: дебаг и релиз
Код:
std::vector<std::pair<wchar_t, double>>* column = (*_partialProbabilityMatrix)[step];
std::vector<std::pair<wchar_t, double>>::iterator iter = column->begin();
for( ; iter != column->end(); iter++)
{
//и далее тело цикла
std::vector<std::pair<wchar_t, double>>::iterator iter = column->begin();
for( ; iter != column->end(); iter++)
{
//и далее тело цикла
Получаем указатель на вектор. Далее выбираем итератор его начала, и входим в цикл для обработки.
На условном выражении в заголовке цикла ( iter != column->end()) в релизе программы появляется такая штука:
Цитата:
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!
Program: D:\Projects\Kation-S\Release_CPP_x86\KationS.exe
File: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector
Line: 238
Expression: vector iterators incompatible
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
---------------------------
Прервать Повтор Пропустить
---------------------------
Microsoft Visual C++ Debug Library
---------------------------
Debug Assertion Failed!
Program: D:\Projects\Kation-S\Release_CPP_x86\KationS.exe
File: C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\vector
Line: 238
Expression: vector iterators incompatible
For information on how your program can cause an assertion
failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)
---------------------------
Прервать Повтор Пропустить
---------------------------
В дебаге ее просто нету. Программа однопоточна. Никаких изменений вектора нет. И даже эта ссылка мне не помогает.
Что же это такое?
Цитата:
И даже эта ссылка мне не помогает.
Тоесть ты пробовал компилять с выставленным дефайном _HAS_ITERATOR_DEBUGGING в 0 и при этом ассерт остался?
Цитата: aks
В теле цикла размер вектора не изменяется?
Нет, не меняется
Цитата: aks
То есть ты пробовал компилять с выставленным дефайном _HAS_ITERATOR_DEBUGGING в 0 и при этом ассерт остался?
Нет, не пробовал. У меня же проблема была не в дебаг версии, я думал /*почему-то*/, что в релизе этот дефайн и так обнулен.
Спасибо за ответ, но вопрос уже решен. Проблема сидела горааааздо глубже (в организации проекта, перемудрил с дефайнами, и в итоге в релиз версии грузилась не та версия вспомогательной либы).
А на форума кнопка "удалить вопрос" не работает. И не разрешает мне его даже редактировать(