簡體   English   中英

std :: sort降序與運算符重載

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM