运算符重载与sort()
二话不说上代码:
1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 struct type_1 5 { 6 int a,b; 7 type_1(int x=0,int y=0):a(x),b(y){} 8 }; 9 bool compare(type_1 a,type_1 b) 10 { 11 return a.a<b.a; 12 } 13 bool operator < (const type_1 &a,const type_1 &b) 14 { 15 return a.a<b.a; 16 } 17 ostream& operator<<(ostream &cout,const type_1 &a) 18 { 19 cout<<"("<<a.a<<","<<a.b<<")"; 20 } 21 int main() 22 { 23 type_1 vec[10]={type_1(3,4),type_1(2,4),type_1(1,4),type_1(9,4),type_1(31,4),type_1(25,4),type_1(2,4),type_1(9,4),type_1(2,4),type_1(1,4)}; 24 sort(vec,vec+10);//通过定义小于< 25 for(int i=0;i<10;i++) 26 cout<<vec[i]<<" "; 27 cout<<endl; 28 29 return 0; 30 }
此函数 展示了:
①"<"逻辑符的重载
②"cout"输出的重载
③“sort()”的两种排序规则的定义:一种是通过定义逻辑函数"compare",另一种是通过重载逻辑运算符"<"
④更明白了 compare 是定义一种小于
2017-03-11 22:53:34
时间: 2024-10-25 05:23:28