blob: bd183e0478ec8ed991aa603c1479192f6449e0cb (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
#pragma once
#include <functional>
#include <ranges>
template <std::ranges::random_access_range Range>
void group(const Range &v, const std::function<void(int, int)> &fn) {
int n = v.size();
for (int i = 0; i < n;) {
auto i0 = i;
while (i < n && v[i0] == v[i]) {
i++;
}
fn(i0, i);
}
}
|