Вы должны проверить, что итератор является действительным итератором, прежде чем разыменовывать его. Ваш цикл будет продолжаться до *it < investigated_stat
, но он не остановится, когда ни один из элементов не станет >= investigated_stat
, и вы переберите конец вектора.
Тест в цикле for должен быть
it != stat1vec.end() && *it >= investigated_stat
Что делает слегка модифицированным for
:
for(it = stat1vec.begin(); it != stat1vec.end() && *it >= investigated_stat; ++it, ++positioner)
if(*it == investigated_stat)
++equalwith;