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

MultiPlatform

  1. // This programs is using dictionaries with keys of type "string" with two 
  2. // different linear orders, the lexicographic ordering  (default ordering)
  3. // and the reversed lexicographic ordering 
  4. #include <LEDA/dictionary.h>
  5. int cmp_rev(const string& x, const string& y) { return compare(y,x); }
  6. int cmp_length(const string& x, const string& y) 
  7. { return compare(x.length(),y.length()); }
  8. DEFINE_LINEAR_ORDER(string,cmp_rev,string_r)
  9. DEFINE_LINEAR_ORDER(string,cmp_length,string_l)
  10. main()
  11. {
  12.   dictionary<string,int>    D;
  13.   dictionary<string_r,int>  D_rev;
  14.   dictionary<string_l,int>  D_length;
  15.   string x;
  16.   while (cin >> x) 
  17.   { D.insert(x,0);
  18.     D_rev.insert(x,0);
  19.     D_length.insert(x,0);
  20.    }
  21.   dic_item it;
  22.   forall_items(it,D) cout << D.key(it)  << "n";
  23.   newline;
  24.   forall_items(it,D_rev) cout << D_rev.key(it)  << "n";
  25.   newline;
  26.   forall_items(it,D_length) cout << D_length.key(it)  << "n";
  27.   newline;
  28.   return 0;
  29. }