基本上,我正在尝试按{{1}的值对struct Entry
(每个Entry
有string word
和int count
)的向量进行排序}}秒。我设法通过内联lambda表达式来实现:
int
但是,我现在遇到的问题是,如果两个或多个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);
});
具有相同的Entry
,我需要按字母顺序对它们进行排序。可以在那里的某个地方使用另一个lambda表达式,还是有另一种方法可以做到这一点?谢谢!
答案 0 :(得分:2)
解决方案非常简单:
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;
});