【发布时间】:2013-12-14 21:57:59
【问题描述】:
我有一个班级说class stuff{ int id; int ammount; int quality; /*...*/ };,我有一个vector<stuff> items。我想让我的收藏可以通过stuff::id 进行排序,并且可以通过staff::id 进行搜索。我可以通过 find_if 来完成,并使用一些特殊的基于 stl lambda 的排序函数进行排序。然而,我想在向量中默认拥有这一切。我听说有一些方法可以创建散列函数但我到处搜索都找不到它......那么如何使用默认向量函数使类在向量内部可排序/可搜索?
【问题讨论】:
-
定义返回
this->id < that.id的stuff::operator<(const stuff &that)。 -
你能用
std::map<int, int>代替吗? -
这里的重点是了解如何做这样的事情,以便能够像
mappair::first一样使用我的类,按我的业务逻辑定义的类搜索所有基本容器 -不是一般的整数和字符串。