#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

struct Racecar
{
    int myTotalPoints;
};

std::ostream& operator <<(std::ostream& os, Racecar const& r)
{
    return os << r.myTotalPoints;
}

int main()
{
    std::vector<Racecar> racecars = { {1}, {5}, {2}, {4}, {6}, {3} };

    std::sort(std::begin(racecars), std::end(racecars),
        [](Racecar const& a, Racecar const& b) {
        return b.myTotalPoints < a.myTotalPoints;   
        });

    std::copy(std::begin(racecars), std::end(racecars), 
        std::ostream_iterator<Racecar>(std::cout, "\n"));
}
