2017-02-09 10:43:53 -05:00
|
|
|
#ifndef OSRM_UTIL_FOR_EACH_RANGE_HPP
|
|
|
|
#define OSRM_UTIL_FOR_EACH_RANGE_HPP
|
|
|
|
|
2022-12-11 04:10:26 -05:00
|
|
|
namespace osrm::util
|
2017-02-09 10:43:53 -05:00
|
|
|
{
|
|
|
|
|
|
|
|
template <typename Iter, typename Func> void for_each_range(Iter begin, Iter end, Func f)
|
|
|
|
{
|
|
|
|
auto iter = begin;
|
|
|
|
while (iter != end)
|
|
|
|
{
|
|
|
|
const auto key = iter->first;
|
|
|
|
auto begin_range = iter;
|
|
|
|
while (iter != end && iter->first == key)
|
|
|
|
{
|
|
|
|
iter++;
|
|
|
|
}
|
|
|
|
f(begin_range, iter);
|
|
|
|
}
|
|
|
|
}
|
2022-12-20 12:00:11 -05:00
|
|
|
} // namespace osrm::util
|
2017-02-09 10:43:53 -05:00
|
|
|
|
|
|
|
#endif
|