Нужна помощь в реализации сортировки подстчетом

Месяца 1,5 назад писал сортировку подсчётом. Сейчас уже потихоньку подхожу к шаблонам и возникает вопрос: как, сохрняя эту же реализацию, написать шаблоную функцию сортировки.

void fillZeros(std::vector<int> counter, int maxElement) {
    for(int i = 0; i < maxElement; i++) {
       counter[i] = 0;
    }
}

template<typename Collection, typename M>
void countingSort(Collection ar, M maxElement) {
    std::vector<int> counter;
    fillZeros(counter, maxElement);
    for(int i = 0; i < ar.size(); i++) {
        counter[ar[i]]++;
    }
    int position = 0;
    for(int i = 0; i < maxElement; i++) {
        for(int j = 0; j < counter[i]; j++) {
            ar[position++] = i;
        }
    }
}

Ответы (0 шт):