110 const unsigned int end,
111 const unsigned int n_intervals)
115 const unsigned int n_elements =
end -
begin;
116 const unsigned int n_elements_per_interval = n_elements / n_intervals;
117 const unsigned int residual = n_elements % n_intervals;
119 std::vector<std::pair<unsigned int, unsigned int>> return_values(
122 return_values[0].first =
begin;
123 for (
unsigned int i = 0; i < n_intervals; ++i)
125 if (i != n_intervals - 1)
127 return_values[i].second =
128 (return_values[i].first + n_elements_per_interval);
134 ++return_values[i].second;
135 return_values[i + 1].first = return_values[i].second;
138 return_values[i].second =
end;
140 return return_values;