力扣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;
};
你这个public函数是 static 的,不能调非static 成员
不知道你这个问题是否已经解决, 如果还没有解决的话: