c++;设置<&燃气轮机;类对象的类型。使用自己的比较器给出错误:C2804:binary';操作员<';参数太多 我写了一个C++代码如下: #include<iostream> #include<string> #include<set> using namespace std; class data{ int i; float f; char c; public: data(); data(int i,float f,char c); }; data::data(int i,float f,char c){ this->i=i; this->f=f; this->c=c; }; class LessComparer{ bool operator<( const data& a1, const data& a2 ) const{ return( a1.i < a2.i || (!(a1.i > a2.i) && (a1.f < a2.f)) || (!(a1.i > a2.i) && !(a1.f > a2.f) && (a1.c < a2.c))); } }; int main(){ set<data,LessComparer> s; set<data,LessComparer>::iterator it; s.insert(data(1,1.3,'a')); s.insert(data(2,2.3,'b')); s.insert(data(3,3.3,'c')); if((it=s.find(data(1,1.3,'a'))!=s.end()) cout<<(*it).i; cin.get(); return 0; } #包括 #包括 #包括 使用名称空间std; 类数据{ int i; 浮动f; 字符c; 公众: 数据(); 数据(整数i、浮点f、字符c); }; 数据::数据(int i、float f、char c){ 这个->i=i; 这个->f=f; 这个->c=c; }; 无阶级比较者{ 布尔算子a2.i)&(a1.fa2.i)&&&(a1.f>a2.f)&&(a1.c

c++;设置<&燃气轮机;类对象的类型。使用自己的比较器给出错误:C2804:binary';操作员<';参数太多 我写了一个C++代码如下: #include<iostream> #include<string> #include<set> using namespace std; class data{ int i; float f; char c; public: data(); data(int i,float f,char c); }; data::data(int i,float f,char c){ this->i=i; this->f=f; this->c=c; }; class LessComparer{ bool operator<( const data& a1, const data& a2 ) const{ return( a1.i < a2.i || (!(a1.i > a2.i) && (a1.f < a2.f)) || (!(a1.i > a2.i) && !(a1.f > a2.f) && (a1.c < a2.c))); } }; int main(){ set<data,LessComparer> s; set<data,LessComparer>::iterator it; s.insert(data(1,1.3,'a')); s.insert(data(2,2.3,'b')); s.insert(data(3,3.3,'c')); if((it=s.find(data(1,1.3,'a'))!=s.end()) cout<<(*it).i; cin.get(); return 0; } #包括 #包括 #包括 使用名称空间std; 类数据{ int i; 浮动f; 字符c; 公众: 数据(); 数据(整数i、浮点f、字符c); }; 数据::数据(int i、float f、char c){ 这个->i=i; 这个->f=f; 这个->c=c; }; 无阶级比较者{ 布尔算子a2.i)&(a1.fa2.i)&&&(a1.f>a2.f)&&(a1.c,c++,operator-overloading,set,C++,Operator Overloading,Set,如果声明则比较程序不需要实现运算符()operator@NDThokare不,那是一个完全不同的问题。问一个新问题posted@NDThokare如果你读了我的答案,你就不需要这个新问题了。 error: C2804: binary 'operator <' has too many parameters class LessComparer{ bool operator < ( const data& a2 ) const{ //... }

如果声明
则比较程序不需要实现运算符()operator@NDThokare不,那是一个完全不同的问题。问一个新问题posted@NDThokare如果你读了我的答案,你就不需要这个新问题了。
error: C2804: binary 'operator <' has too many parameters
class LessComparer{
    bool operator < ( const data& a2 ) const{
        //...
    }
};
class data{
public:
    bool operator < ( const data& a2 ) const{
       //...
    }
};
class data
{
   //...
};
bool operator<( const data& a1, const data& a2 ){
   //...
}
bool operator()( const data& a1, const data& a2 ) const