Мне кажется, проблема в iterGames < games.end()
Вроде же должно быть iterGames != games.end()
Так как ты юзаешь итератор
!= это хорошо, но у него там итератор по вектору, и он с возможностью случайного доступа — а значит абсолютно линейный — поэтому оператор< там подходит
Он не подходит для итераторов без случайного доступа, потому что последовательные элементы могут располагаться в памяти в каком угодно порядке, и тогда нужен оператор!= потому что когда решит выйти оператор< никто не знает