如何在向量中对类进行排序?

时间:2013-11-28 19:09:18

标签: c++ class vector stl

我有一个班级class stuff{ int id; int ammount; int quality; /*...*/ };,我有一个vector<stuff> items。我想通过stuff::id对我的收藏品进行排序,并按staff::id进行搜索。我可以通过find_if来完成它并使用一些特殊的基于stl lambda的排序函数进行排序。然而,我想在向量中默认使用它。我听说有一些方法可以创建散列函数,但是我搜索到的都找不到它...那么如何使用默认的向量函数在类向量中对类进行排序/搜索?

1 个答案:

答案 0 :(得分:6)

为了排序,实现一个比较两个结构的operator<

bool operator<(const stuff& s1, const stuff& s2)
{
    // Your comparison here
}

这是默认情况下用于大多数排序的运算符。

对于等式检查,请同样创建operator==