二位几何运算类

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <vector>
 4 #include <iostream>
 5 #include <algorithm>
 6 #include <set>
 7 #include <map>
 8 #include <queue>
 9 #include <cmath>
10 
11 using namespace std;
12 struct Point
13 {
14     int x,y;
15     Point(int x = 0,int y = 0): x(x),y(y) {}
16     Point operator = (Point p) {x = p.x;y = p.y;return *this;}
17 };
18 
19 Point operator + (const Point& A,const Point& B){return Point(A.x+B.x,A.y+B.y);}
20 Point operator - (const Point& A,const Point& B){return Point(A.x-B.x,A.y-B.y);}
21 Point operator * (const Point& A,int p){return Point(A.x*p,A.y*p);}
22 bool operator == (const Point& A,const Point &B) {return A.x==B.x && A.y == B.y;}
23 bool operator < (const Point& p1,const Point& p2) {return p1.x < p2.x || (p1.x==p2.x && p1.y < p2.y);}
24 istream & operator >> (istream& is,Point& p) {return is >> p.x >> p.y;}
25 ostream & operator << (ostream& os,Point& p) {return os << p.x << " " << p.y;}
26 int main()
27 {
28     Point p1(3,4),p2(7,8);
29     if(p1<p2)
30         cout << "p1 is smaller than p2" << endl;
31     Point p3 = p1 + p2;
32     cout << p3 << endl;
33     Point p4;
34     cin >> p4;
35     cout << p4 << endl;
36     p4 = p3*3;
37     cout << p4 << endl;
38     return 0;
39 }

 

posted @ 2018-09-30 14:10  Asurudo  阅读(171)  评论(0编辑  收藏  举报