pair.c
上传用户:gzelex
上传日期:2007-01-07
资源大小:707k
文件大小:1k
开发平台:

MultiPlatform

  1. #include <LEDA/list.h>
  2. class pair {
  3.  double  x;
  4.  double  y;
  5. public:
  6. pair() { x = y = 0; }
  7. pair(const pair& p) { x = p.x; y = p.y; }
  8. friend istream& operator>>(istream& is, pair& p)
  9. { return is >> p.x >> p.y; }
  10. friend ostream& operator<<(ostream& os, const pair& p)
  11. { return os << p.x << " " << p.y; }
  12. friend int compare(const pair&, const pair&);
  13. };
  14. void Print(const pair& p, ostream& out)  { out << p; } 
  15. void Read(pair& p, istream& in)  { in >> p; } 
  16. int compare(const pair& p, const pair& q)
  17. {  if (p.x < q.x) return -1; 
  18.    if (p.x > q.x) return  1; 
  19.    if (p.y < q.y) return -1; 
  20.    if (p.y > q.y) return  1; 
  21.    return 0;  
  22. }
  23. #if !defined(__TEMPLATE_FUNCTIONS__)
  24. LEDA_TYPE_PARAMETER(pair)
  25. #endif
  26. main()
  27. {
  28.    list<pair> L;
  29.    L.read("list of pairs: ");
  30.    L.sort();
  31.    L.print("sorted:n",'n');
  32.  }