Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
_algobase.cc
Go to the documentation of this file.
1
44
45
47template <class _InputIter1, class _InputIter2>
48bool lexicographical_compare (_InputIter1 __first1, _InputIter1 __last1,
49 _InputIter2 __first2, _InputIter2 __last2)
50{
51 _RWSTD_ASSERT_RANGE (__first1, __last1);
52 _RWSTD_ASSERT_RANGE (__first2, __last2);
53
54 for ( ; ; ++__first2, ++__first1) {
55
56 if (__first1 == __last1)
57 return !(__first2 == __last2);
58
59 if (__first2 == __last2 || *__first2 < *__first1)
60 break;
61
62 if (*__first1 < *__first2)
63 return true;
64 }
65 return false;
66}
67
68
70template <class _InputIter1, class _InputIter2, class _Compare>
71bool lexicographical_compare (_InputIter1 __first1, _InputIter1 __last1,
72 _InputIter2 __first2, _InputIter2 __last2,
73 _Compare __comp)
74{
75 _RWSTD_ASSERT_RANGE (__first1, __last1);
76 _RWSTD_ASSERT_RANGE (__first2, __last2);
77
78 for ( ; ; ++__first2, ++__first1) {
79
80 if (__first1 == __last1)
81 return !(__first2 == __last2);
82
83 if (__first2 == __last2 || !(__comp (*__first2, *__first1) == false))
84 break;
85
86 if (!(__comp (*__first1, *__first2) == false))
87 return true;
88 }
89
90 return false;
91}
92
93
94} // namespace std
#define _RWSTD_NAMESPACE(name)
Definition _defs.h:567
#define _EXPORT
Definition _defs.h:498
#define _RWSTD_ASSERT_RANGE(ign1, ign2)
Definition _defs.h:1247
Definition json.h:5363