如何使类在向量内可排序
How to make class sortable inside vector?
我有一个类,比如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==
。
相关文章:
- 计算排序向量的向量中唯一值的计数
- 查找两个排序向量中共有的元素
- 对的排序向量 (std::vector<pair<int, int>>) 按对的第一个元素搜索并更新第二个元素值
- 如何从C++的对的排序向量中获取有关给定值的相应对
- 对象接收堆栈溢出异常 c++ 的排序向量
- "x"的所有元素都存在于"y"(排序向量)中吗?
- 指向指针排序向量的指针向量的 C++ 向量
- 未排序向量上的lower_bound/upper_bound
- 智能指针的排序向量:神秘崩溃
- 按类型排序向量并按类型或派生类型搜索
- 如何在不使用标准算法的情况下在排序向量中添加 c 元素?
- C++排序向量<double>与在<Object>双成员变量上键控的向量
- 字符串指针的排序向量
- 具有前导数字的字符串的排序向量
- 保证重新排序向量
- 结构解释的C 排序向量
- 更新排序向量的一个条目
- 通过在排序向量上使用二叉搜索来定位未排序向量中的元素
- 排序向量上 std::find_if 和 std::bind2nd 的替代品
- 使用QuickSort算法以降序排序向量