this question has answer here:
- sort based on multiple things in c++ 5 answers
so basically, i'm trying sort vector of struct entry
(each entry
has string word
, int count
) values of int
s. managed via inline lambda expression:
vector<entry*> entries(old); //make copy of old vector std::stable_sort(entries.begin(), entries.end(), [] (const entry *lhs, const entry *rhs){ return (lhs->count > rhs->count); });
however, problem have is, if 2 or more entry
s have same count
, need sort in alphabetical order. possible use lambda expression somewhere in there, or there way this? thanks!
the solution pretty simple:
std::stable_sort(entries.begin(), entries.end(), [] (const entry *lhs, const entry *rhs) { if( lhs->count != rhs->count ) return lhs->count > rhs->count; else return lhs->word > rhs->word; });
Comments
Post a Comment