c++ - 如何使类在 vector 内可排序?

标签 c++ class vector stl

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

最佳答案

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

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

这是大多数排序默认使用的运算符。

为了进行相等性检查,创建一个 operator==同样。

关于c++ - 如何使类在 vector 内可排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20273308/

相关文章:

c++ - 如何通过 vector 调用方法?

Python - 在类中动态添加方法的推荐方法

c++ - 让类(class)与运营商合作的更简单方法?

arrays - Matlab 重采样向量

c++ - 如何创建继承类对象的数组?

c++ - 调试:我的符号没有加载到 gdb 中?

c++ - 如何提高将数据推送到互斥锁定队列的性能

C++ 成员函数指针

c++ - 尝试添加两个 vector ,但添加顺序错误

c++ - 我需要替换 vector 中的一系列元素