Может, вместо вычитания `i - rows.begin()` завести еще одну переменную-счетчик с другим интервалом изменения? Не уверена, что это даст ускорение, но попробовать можно.