#include<iostream>
using namespace std;
struct node
{
int a,b;
node(int x,int y):a(x),b(y){//构造函数
}
int operator ^ (const node &x){//重载运算符 ,一个参数
return x.a*b+x.b*a;
}
} ;
int main()
{
node a(1,2),b(2,3);
cout<<a.operator ^(b)<<endl;
printf("%d\n",a^b);
cout<<(a^b)<<endl;//不加括号不行
}
#include<iostream>
using namespace std;
struct node
{
int a,b;
node(int x,int y):a(x),b(y){
}//构造函数
} ;
int operator ^ (const node &x,const node &y){//结构体外重载运算符 ,两个参数
return x.a*y.b+x.b*y.a;
}
int main()
{
node a(1,2),b(2,3);
cout<<(a^b)<<endl;//不加括号不行
printf("%d\n",a^b);
}
#include<iostream>
#include<set>
using namespace std;
struct node
{
int a;
node(int x):a(x){
}
bool operator<(const node &x)const//必须加const
{
return x.a<a;
}
};
/*bool operator<(const node &x,const node &y)
{
return x.a>y.a;
}*/
int main()
{
set<node> st;
set<node>::iterator it;
for(int i=1;i<4;i++)
{
node t(i);
st.insert(t);
}
for(it=st.begin();it!=st.end();it++)
cout<<(it->a)<<endl;
}