[英]std::sort descending order with operator overloading
我有一個std::vector
對象,我重載了<
operator。
如何使用std::sort
按降序對其進行排序(無需編寫自己的Comparator)?
你可以在std::bind
的幫助下簡單地將參數轉換為std::less
:
using namespace std::placeholders;
std::sort(v.begin(), v.end(), std::bind(std::less<T>{}, _2, _1));
但是我認為簡單地編寫等效的短lambda會更加清晰,即使它違背了不編寫自己的Comparator的限制:
std::sort(v.begin(), v.end(), [](T const& lhs, T const& rhs) { return rhs < lhs; });
std::sort(v.rbegin(), v.rend());
您可以使用std::sort
對數組進行std::sort
,然后使用std::sort
reverse將其std::reverse
。 這將按您想要的方式排序。
std::sort(v.begin(), v.end());
std::reverse(v.begin(), v.end());
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.