No - since the vector has a pointer value type, it won't "see" the operator<. You need to specify a custom comparator (ie, a predicate) to the sort function to make sure they're sorted properly, and not just my memory address.
Generic Algorithm TutorialYou'd want something that looked like this -
class Predicate {public: bool operator()( const planetbody& lhs, const planetbody& rhs ) { return ( lhs->sorbit < rhs->sorbit ); }};
And then call your sort function like -
sort( Systems[x]->Planets.begin(), Systems[x]->Planets.end(), Predicate() );
See if that does the trick. I honestly haven't used predicates in a long while :O