compareclass.h

Go to the documentation of this file.
00001 #ifndef  __compareclass_h
00002 #define  __compareclass_h
00003 
00004 #include "nvector.h"
00005 #include <algorithm>
00006 
00007 /*********************************************************/
00008 
00009 namespace Gascoigne
00010 {
00011 template<class T>
00012 class CompareLess
00013 {
00014   protected:
00015   
00016   const T*   wp;
00017 
00018   public:
00019 
00020   CompareLess<T>() {}
00021   CompareLess<T>(const T& w)
00022     { 
00023       wp  = &w;
00024     }
00025   bool operator()(int i1,int i2) const
00026     {
00027       if( (*wp)[i1]  < (*wp)[i2] ) return 1;
00028       return 0;
00029     }
00030 };
00031 
00032 /*********************************************************/
00033 
00034 template<class T>
00035 class CompareObject
00036 {
00037   protected:
00038   
00039   const T& P;
00040 
00041   public:
00042 
00043   CompareObject(const T& p) : P(p)
00044     {};
00045   
00046   bool operator()(int i, int j) const
00047     { return P[i]<P[j]; }
00048 };
00049 
00050 /*********************************************************/
00051 
00052 template<class T>
00053 class CompareObjectBigToSmall
00054 {
00055   protected:
00056   
00057   const T& P;
00058   
00059   public:
00060   
00061   CompareObjectBigToSmall(const T& p) : P(p)
00062     {};
00063   
00064   bool operator()(int i, int j) const
00065     { return P[j]<P[i]; }
00066 };
00067 }
00068 
00069 #endif
00070 

Generated on Thu Sep 14 10:34:34 2006 for Gascoigne by  doxygen 1.4.7