我有一个班级class stuff{ int id; int ammount; int quality; /*...*/ };
,我有一个vector<stuff> items
。我想通过stuff::id
对我的收藏品进行排序,并按staff::id
进行搜索。我可以通过find_if来完成它并使用一些特殊的基于stl lambda的排序函数进行排序。然而,我想在向量中默认使用它。我听说有一些方法可以创建散列函数,但是我搜索到的都找不到它...那么如何使用默认的向量函数在类向量中对类进行排序/搜索?
答案 0 :(得分:6)
为了排序,实现一个比较两个结构的operator<
:
bool operator<(const stuff& s1, const stuff& s2)
{
// Your comparison here
}
这是默认情况下用于大多数排序的运算符。
对于等式检查,请同样创建operator==
。