7
爲了基於該y
值一些標準集裝箱Container<T>
的Comparer是需要的有用屬性
struct T{
int x,y;
};
使用標準的功能像std::sort
,你需要寫類似的信息(例如):
std::vector<T> v;
//fill v
std::sort(v.begin(),v.end(),[](const auto& l,const auto& r){
return l.y<r.y;
});
寫成lambda函數的比較器用得太多,並且在各種類和屬性的代碼中一遍又一遍地重新編寫。
考慮其中y
的類型是可比較的(無論是像int
或存在用於< operator
過載),是否有任何的方式來實現的東西等的情況下:
std::sort(v.begin(),v.end(),imaginary::less(T::y)); // Imaginary code
是否有可能在C++來寫如less
這樣的函數?或類似的東西?
我在問,因爲我在一些託管語言(我不確定也許C#或Java)中記得類似的東西。但是,如果它是真實的,我甚至不確定這個信息。
你會很樂意與代碼,允許你說'member_less()'? –
@Nathan:但是這不允許你在調用'std :: sort'的時候選擇排序的成員。 –
@ BenVoigt啊。我沒有看到那是OP想要做的。傻我。 – NathanOliver