gpt4 book ai didi

c++ - 对于列表排序,有没有办法让多个运算符重载具有相同的参数?

转载 作者:行者123 更新时间:2023-11-30 04:48:24 25 4
gpt4 key购买 nike

总结

我有一个 Process* 类型的 std::list

class Process
{
// non essential stuff

// vars I want to sort by
int pid;
int burstTime;
int rBurstTime;
int priority;
}

我想重载 < 运算符以通过 list::sort() 对我的列表进行排序

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++ 程序员,如果这是一个简单的修复,我深表歉意。

最佳答案

通过 Borgo Leader 的评论解决:

std::list sort 可以采用比较函数/仿函数,你应该使用它(std::sort 也是如此)

关于c++ - 对于列表排序,有没有办法让多个运算符重载具有相同的参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55802064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com