Я знаю, что вы уже приняли ответ, но у вашего опубликованного кода есть проблема со следующим циклом:
for(int i=0;i<=v.size();i++)
Векторные индексы начинаются с нуля. Если размер вектора равен 5, то допустимые индексы равны 0..4. Ваш код будет пытаться получить доступ к элементам 0 .. 5 , что является ошибкой "по одному" Я считаю, что ваше "исправление" размера стека просто маскирует другие реальные проблемы.
Кроме того, вы должны передавать вектор по ссылке, а не по значению. Вы в настоящее время копируете вектор, когда звоните AUROC(vector<float> v)
. Это медленная и экстравагантная трата памяти. Измените функцию на AUROC(vector<float> &v)
.