Просто приведите итераторы к началу и концу диапазона, который вы хотите проверить, например,
auto it = std::next(map.begin(), map.size() / 4);
auto end = std::next(map.begin(), map.size() * 3 / 4);
, и затем вы можете выполнить итерацию этого диапазона, например
for (; it != end; ++it)
{
// do stuff here
}
.нужен конечный итератор, если вы хотите счетчик.Это экономит затраты на продвижение конечного итератора по карте, что может иметь значение, особенно на больших картах.Это будет выглядеть как
auto it = std::next(map.begin(), map.size() / 4);
auto end = map.size() / 2;
for (size_t counter = 0; counter < end; ++it, ++counter)
{
// do stuff here
}