Вы не можете напрямую вычитать из итератора карты, потому что это дорогостоящая операция (на практике это делается --iter необходимое количество раз)Если вы действительно хотите это сделать, вы можете использовать стандартную библиотечную функцию 'advance'.
map<...>::iterator end = final.end();
std::advance(end, -window);
Это даст вам конец вашего окна.