Oblicz medianę wartości przechowywanych w wektorze - C ++?

Jestem studentem programowania i dla projektu, nad którym pracuję, jedną z rzeczy, które muszę zrobić, jest obliczenie mediany wartości wektorów int. Mam to zrobić, używając tylko funkcji sortowania z STL i funkcji składowych wektora, takich jak.begin(), .end(), i.size().

Mam także upewnić się, że znajduję medianę, czy wektor ma nieparzystą liczbę wartości, czy parzystą liczbę wartości.

A ja jestemOblepiony, poniżej zawarłem moją próbę. Więc gdzie się mylę? Byłbym wdzięczny, gdybyś chciał dać mi kilka wskazówek lub zasobów, aby iść w dobrym kierunku.

Kod:

int CalcMHWScore(const vector<int>& hWScores)
{
     const int DIVISOR = 2;
     double median;
     sort(hWScores.begin(), hWScores.end());
     if ((hWScores.size() % DIVISOR) == 0)
     {
         median = ((hWScores.begin() + hWScores.size()) + (hWScores.begin() + (hWScores.size() + 1))) / DIVISOR);
     }
     else 
     {
       median = ((hWScores.begin() + hWScores.size()) / DIVISOR)
     }

    return median;
}

Dzięki!!

questionAnswers(6)

yourAnswerToTheQuestion