electromechanica 2023-07-29 22:13 采纳率: 73.3%
浏览 6
已结题

sort函数的自定义排序函数如何调用函数外的容器

力扣1122题,题解把sort函数的自定义排序规则写在主函数里了,不知道有没有办法能把它写在主函数外面。
下面贴的代码力扣不认,我写的这个rule函数为什么不认map容器呢?我应该怎么解决这个问题呢?
另外,力扣给的编辑环境就是一个class嘛,按道理讲公共的成员函数调用私有的成员是不应该有阻碍地呀?

class Solution {
public:
    static bool rule(int x,int y)
    {
        if(Ium.count(x))
        {
            if(Ium.count(y))
                return Ium[x]<Ium[y];
            return 1;
        }
        if(Ium.count(y))
            return 0;
        return x<y;
    }
    vector<int> relativeSortArray(vector<int>& arr1, vector<int>& arr2)
    {
        int k=0;
        for(auto v:arr2)
            Ium[v]=k++;
        cout<<Ium.size();
        sort(arr1.begin(),arr1.end(),rule);
        return arr1;
    }
private:
    unordered_map<int,int> Ium;
};

  • 写回答

2条回答 默认 最新

  • Loup&卡普 2023-07-30 09:37
    关注

    你这个public函数是 static 的,不能调非static 成员

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月7日
  • 已采纳回答 7月30日
  • 创建了问题 7月29日