C++ 在c+;中调用指向成员函数的指针时出错+; 类解决方案{ 公众: bool cmp(成对和aa、成对和bb){ if(aa.first
不能使用非C++ 在c+;中调用指向成员函数的指针时出错+; 类解决方案{ 公众: bool cmp(成对和aa、成对和bb){ if(aa.first,c++,function,pointers,call,C++,Function,Pointers,Call,不能使用非静态成员函数,如cmp,作为排序的参数 sort的参数必须是全局函数、静态成员函数或可调用对象 使cmp成为一个静态成员函数,以使程序正常工作。您不能使用非静态成员函数,例如cmp,作为排序的参数 sort的参数必须是全局函数、静态成员函数或可调用对象 让cmp成为静态成员函数,让你的程序工作。首先,你从哪里得到错误?请用注释或类似的东西标记出来。其次,cmp函数真的需要成为成员函数吗?为什么它不是静态成员函数?非常感谢:).在使用静态成员函数后,它现在正在工作。.另外,首先,请看一下
静态
成员函数,如cmp
,作为排序
的参数
sort
的参数必须是全局函数、静态成员函数或可调用对象
使
cmp
成为一个静态
成员函数,以使程序正常工作。您不能使用非静态
成员函数,例如cmp
,作为排序
的参数
sort
的参数必须是全局函数、静态成员函数或可调用对象
让cmp
成为静态
成员函数,让你的程序工作。首先,你从哪里得到错误?请用注释或类似的东西标记出来。其次,cmp
函数真的需要成为成员函数吗?为什么它不是静态
成员函数?非常感谢:).在使用静态成员函数后,它现在正在工作。.另外,首先,请看一下,你从哪里得到错误?请用注释或类似的东西将其标记出来。其次,cmp
函数真的需要成为成员函数吗?为什么它不是一个静态
成员函数?非常感谢:)。在使用静态后成员函数它现在正在工作..同时查看和
class Solution {
public:
bool cmp(pair<int, int>& aa,pair<int, int>& bb){
if(aa.first<bb.first) return true;
else if(aa.second<bb.second) return true;
else return false;
}
int maxEnvelopes(vector<pair<int, int> >& envelopes) {
int i,sz;
sz=envelopes.size();
vector<int> v1,v2;
vector<int>::iterator it1;
vector<int>::iterator it2;
sort(envelopes.begin(),envelopes.end(),cmp);
for(i=0;i<sz;i++){
it1=lower_bound(v1.begin(),v1.end(),envelopes[i].first);
it2=lower_bound(v2.begin(),v2.end(),envelopes[i].second);
if(it1==v1.end()&&it2==v2.end()){
v1.push_back(envelopes[i].first);
v2.push_back(envelopes[i].second);
}
else{
v1[it1-v1.end()]=envelopes[i].first;
v2[it2-v2.end()]=envelopes[i].second;
}
//cout<<v1.size()<<" "<<v2.size()<<endl;
}
return v1.size();
}
};