Pair
template<typename T1, typename T2>
struct Pair
{
typedef T1 FirstType;
typedef T2 SecondType;
Pair():m_First(T1()),m_Second(T2()){}
Pair(const T1& p_First, const T2& p_Second):m_First(p_First),m_Second(p_Second){}
template<typename T3, typename T4> Pair(const T3& p_First, const T4& p_Second):m_First(p_First),m_Second(p_Second){}
T1 m_First;
T2 m_Second;
};
template<class T1, class T2>
inline bool operator==(const Pair<T1, T2>& lsh, const Pair<T1, T2>& rhs)
{
return (lsh.first == rhs.first && lsh.second == rhs.second);
}
template<class T1, class T2>
inline bool operator<(const Pair<T1, T2>& lsh, const Pair<T1, T2>& rhs)
{
return (lsh.m_First < rhs.m_First || (!(rhs.m_First < lsh.m_First) && lsh.m_Second < rhs.m_Second));
}
template<class T1, class T2>
inline const Pair<T1, T2> MakePair(const T1& p_First, const T2& p_Second)
{
return Pair<T1, T2>(p_First, p_Second);
}
struct Pair
{
typedef T1 FirstType;
typedef T2 SecondType;
Pair():m_First(T1()),m_Second(T2()){}
Pair(const T1& p_First, const T2& p_Second):m_First(p_First),m_Second(p_Second){}
template<typename T3, typename T4> Pair(const T3& p_First, const T4& p_Second):m_First(p_First),m_Second(p_Second){}
T1 m_First;
T2 m_Second;
};
template<class T1, class T2>
inline bool operator==(const Pair<T1, T2>& lsh, const Pair<T1, T2>& rhs)
{
return (lsh.first == rhs.first && lsh.second == rhs.second);
}
template<class T1, class T2>
inline bool operator<(const Pair<T1, T2>& lsh, const Pair<T1, T2>& rhs)
{
return (lsh.m_First < rhs.m_First || (!(rhs.m_First < lsh.m_First) && lsh.m_Second < rhs.m_Second));
}
template<class T1, class T2>
inline const Pair<T1, T2> MakePair(const T1& p_First, const T2& p_Second)
{
return Pair<T1, T2>(p_First, p_Second);
}
浙公网安备 33010602011771号