recherche recursive le max dans une liste

#include <iostream>
#include <vector>

int findMax(const std::vector<int>& numbers, size_t index);

int main() {
    std::vector<int> numbers = {3, 7, 1, 8, 4, 5, 9, 2, 6};
    size_t size = numbers.size();

    if (size == 0) {
        std::cout << "The list is empty." << std::endl;
    } else {
        int max = findMax(numbers, 0);
        std::cout << "The maximum element in the list is: " << max << std::endl;
    }

    return 0;
}

int findMax(const std::vector<int>& numbers, size_t index) {
    if (index == numbers.size() - 1) {
        return numbers[index];
    }

    int maxInRest = findMax(numbers, index + 1);

    return (numbers[index] > maxInRest) ? numbers[index] : maxInRest;
}