1#ifndef JGADGET_SEARCH_H
2#define JGADGET_SEARCH_H
44 JUT_ASSERT(200, pValue!=NULL);
53template <
typename T,
typename Predicate>
55 JUT_ASSERT(212, pValue!=NULL);
57 const T* first = pValue;
58 const T* last = pValue + count;
59 const T* found = std::find_if(first, last,
p);
65 return std::distance(first, found);
68template <
typename Category,
typename T,
typename Distance,
typename Po
inter,
typename Reference>
69struct TIterator :
public std::iterator<Category, T, Distance, Pointer, Reference> {
72template <
typename Iterator>
78template <
typename Iterator,
typename T,
typename Predicate>
80 return std::upper_bound(first, last, val,
p);
83template <
typename Iterator,
typename T,
typename Predicate>
89 typedef typename std::iterator_traits<Iterator>::difference_type difference_type;
90 difference_type dist = std::distance(first, last);
91 difference_type stride = 1;
110 stride = expand.get(stride);
116template <
typename Iterator,
typename T,
typename Predicate>
122 typedef typename std::iterator_traits<Iterator>::difference_type difference_type;
124 difference_type dist = std::distance(first, last);
125 difference_type stride = 1;
144 stride = expand.get(stride);
150template <
typename Iterator,
typename T,
typename Predicate>
152 return current == last ||
p(val, *current) ?
157template <
typename Iterator,
typename T>
int strcmp(const char *str1, const char *str2)
Definition string.c:118
static void * search(void *param_1, void *param_2)
Definition d_a_tag_qs.cpp:258
static u8 index[20][3]
Definition GXDraw.c:434
int i
Definition e_log.c:92
unsigned long u32
Definition types.h:12
signed long s32
Definition types.h:11
Definition linklist.cpp:6
const T & toValueFromIndex(int idx, const T *pValue, u32 count, const T &fallback)
Definition search.h:43
Iterator findUpperBound_binary_begin(Iterator first, Iterator last, const T &val, Predicate p)
Definition search.h:84
Iterator findUpperBound_binary_end(Iterator first, Iterator last, const T &val, Predicate p)
Definition search.h:117
const char * toStringFromIndex(int index, const char *const *pValue, u32 count, const char *fallback)
Definition search.cpp:5
int toIndexFromString_linear(const char *, const char *const *, u32, int)
Definition search.cpp:9
Iterator findUpperBound_binary_current(Iterator first, Iterator last, Iterator current, const T &val, Predicate p)
Definition search.h:151
Iterator findUpperBound_binary_all(Iterator first, Iterator last, const T &val, Predicate p)
Definition search.h:79
int toIndexFromValue_linear_if(Predicate p, const T *pValue, u32 count, int fallback)
Definition search.h:54
TIterator_reverse(Iterator it)
Definition search.h:75
TIterator_reverse()
Definition search.h:74
static s32 get(s32 n)
Definition search.h:16
const char * string_
Definition search.h:34
bool operator()(const char *sz) const
Definition search.h:24
TPR1IsEqual_string_(const char *sz)
Definition search.h:20