Listing 3: Comparison Template Functions
// TEMPLATE FUNCTION lexicographical_compare
template<class InIt1, class InIt2> inline
bool lexicographical_compare(InIt1 first1, InIt1 last1,
InIt2 first2, InIt2 last2)
{for (; first1 != last1 && first2 != last2;
++first1, ++first2)
if (*first1 < *first2)
return (true);
else if (*first2 < *first1)
return (false);
return (first1 == last1 && first2 != last2); }
// TEMPLATE FUNCTION mismatch
template<class InIt1, class InIt2> inline
pair<InIt1, InIt2> mismatch(InIt1 first, InIt1 last, InIt2 x)
{for (; first != last && *first == *x; ++first, ++x)
;
return (pair<InIt1, InIt2>(first, x)); }
// TEMPLATE FUNCTION equal
template<class InIt1, class InIt2> inline
bool equal(InIt1 first, InIt1 last, InIt2 x)
{return (mismatch(first, last, x).first == last); }
//End of File