sort(vec.begin(), vec.end(), [](const pair<char, int> &p1, const pair<char, int> &p2) {
if (p1.second >p2.second)
return p1.second >p2.second ;
else if(p1.second ==p2.second )
return p1.first <p2.first;
}
);
报错:control may reach end of non-void lambda
出现原因:有些编译器下会提示上述编译错误。leetcode上也提示错误,可能是因为返回语句都在条件语句中的吧,添加上一行,其实最后的if外边的return是无用的。
sort(vec.begin(), vec.end(), [](const pair<char, int> &p1, const pair<char, int> &p2) {
if (p1.second >p2.second)
return p1.second >p2.second ;
else if(p1.second ==p2.second )
return p1.first <p2.first;
return p1.second >p2.second ;
}
);