如何使类在向量内可排序

How to make class sortable inside vector?

本文关键字:排序 向量 何使类      更新时间:2023-10-16

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

对于排序,实现一个比较两种结构的operator<

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

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

对于相等性检查,请类似地创建operator==