[英]C++ Sorting objects based on two data members
我知道你可以將一個用戶定義的類插入到std::vector
,然后重載排序機制,以便它對特定的數據成員進行比較。 但是,你如何對std::vector<MyClass>
進行排序,其中MyClass
有兩個數據成員,你想在第二個數據成員上添加“第二級”排序? 那么對數據成員a
和a
相等的排序,然后對數據成員b
進行排序?
使用std::tuple
創建自定義比較器
#include <tuple>
//..
struct comp
{
bool operator()(const MyClass& lhs, const MyClass& rhs) const
{
return std::tie(lhs.a, lhs.b) < std::tie(rhs.a, rhs.b);
}
};
它將使用a
第一,然后b
第二
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.