Проблема связана с short value
при достижении элемента 60000
.
Это слишком велико, чтобы поместиться в short
на вашей платформе, поэтому ваш short
переполняется, с определением реализации результаты.
Кажется, что в вашем случае происходит то, что 60000
оборачивается к отрицательному -5536
, а затем преобразуется (четко определенным) в unsigned long
, что в вашем случае равно 2 64 - 5536: это равно максимуму, отображаемому вашей программой.
Одно исправление - использовать идиоматию c
for(auto&& value: values){