对于列表排序,有没有办法使用相同的参数让多个运算符重载?
For list sorting, is there a way to have multiple operator overloads with the same arguments?
摘要
我有一个 std::列表类型为进程*
class Process
{
// non essential stuff
// vars I want to sort by
int pid;
int burstTime;
int rBurstTime;
int priority;
}
我想重载
bool operator<(Process const& p) {return this.priority < p.priority}
bool operator<(Process const& p) {return this.burstTime < p.burstTime}
// etc.
以上似乎是不可能的,因为没有办法确定两者之间的差异(或者我是否在正确的轨道上?
我尝试了什么
我试过类似的东西
bool operator<(Process const& p, <k>) {return this.priority < p.priority}
其中 k 只是任何数据类型/期望值,它告诉使用哪个重载,但这是不可能的,因为重载只<一个参数。>
希望到现在为止,您能看到我想做什么。是否有我不知道的C++程序?我是一个相对较新的C++程序员,所以如果这是一个简单的解决方案,请道歉。
通过 Borgleader 的评论解决:
std::list 的排序可以采用比较函数/函子,你应该使用它(std::sort 也是如此)
相关文章:
- 使用模板参数重载C++方法:如何使其适用于模板的子类?
- 如何使用类的参数重载运算符+?
- 为什么我不能用两个参数重载 C++ 运算符 []?
- 模板化类参数重载
- 模板参数重载,最后一个参数为非类型名
- MSVC编译器错误将模板与枚举参数重载时
- std::map:使用键类以外的参数重载运算符<
- C++用参数重载友元类函数参数
- 如何在参数重载解析中禁用隐式转换为指向 void 的指针
- 使用可选参数重载 new 和 delete 运算符
- 如何通过参数函子参数重载函数切换
- 同时使用参数重载和返回类型重载
- 特征3,并根据模板参数重载新算子,以确保正确对齐
- C++使用默认参数重载
- 单例方案,使用不同的参数重载 getInstance
- 具有'const'参数重载的可变参数模板
- 是fill_n,并填充相同的函数,但具有不同的参数重载
- 用不同的参数重载运算符两次
- 模板非类型参数重载
- 无法推断模板参数/'n'重载都无法覆盖所有参数类型