31 #ifndef ACE_COMMON_IS_SORTED_H
32 #define ACE_COMMON_IS_SORTED_H
34 namespace ace_common {
47 if (size == 0)
return true;
52 for (
size_t i = 1; i < size; ++i) {
54 if (current < prev)
return false;
65 bool isSorted(
const X list[],
size_t size) {
66 return isSortedByKey(size,
67 [&list](
size_t i) {
return list[i]; } );
94 if (size == 0)
return true;
97 for (
size_t i = 1; i < size; ++i) {
98 auto current = key(i);
99 if (current < prev)
return false;
115 if (size == 0)
return true;
120 for (
size_t i = 1; i < size; ++i) {
122 if (current > prev)
return false;
140 template <
typename K>
142 if (size == 0)
return true;
145 for (
size_t i = 1; i < size; ++i) {
146 auto current = key(i);
147 if (current > prev)
return false;
bool isReverseSortedByKey(size_t size, K &&key)
Same as isSortedByKey() but checks for reverse sorting.
bool isSorted(const X list[], size_t size)
Determine if the elements of the array is sorted This function assumes that 'operator<()' for the val...
bool isReverseSorted(const X list[], size_t size)
Same as isSorted() but checks for reverse sorting.
bool isSortedByKey(size_t size, K &&key)
Determine if the abstract array is sorted according to its 'key'.