00001
00008 #ifndef _utilidades_h
00009 #define _utilidades_h
00010
00024 template <class T1, class T2>
00025 struct Par {
00041 T1 primero;
00042 T2 segundo;
00043
00044 Par(): primero(T1()),segundo(T2()) {}
00045 Par(const T1& p, const T2& s): primero(p),segundo(s) {}
00046 Par(const Par& p): primero(p.primero),segundo(p.segundo) {}
00047 template <class U1, class U2>
00048 Par(const Par<U1,U2>& p): primero(p.primero),segundo(p.segundo) {}
00049 ~Par() {}
00050 Par& operator= (const Par& v)
00051 {primero=v.primero;segundo=v.segundo; return *this; }
00052 bool operator==(const Par& s) const
00053 {return primero==s.primero && segundo==s.segundo;}
00054 bool operator!=(const Par& s) const
00055 {return primero!=s.primero || segundo!=s.segundo;}
00056 };
00057
00058 #endif