SDL_bsearch

Perform a binary search on a previously sorted array.

extern (C) nothrow @nogc extern
void*
SDL_bsearch
(
const(void)* key
,
const(void)* base
,
size_t nmemb
,
size_t size
,)

Examples

struct data {
                int key;
                const(char)* value;
            }

            int compare(const(data)* a, const(data)* b) {
                if (a.n < b.n) {
                    return -1;
                } else if (b.n < a.n) {
                    return 1;
                } else {
                    return 0;
                }
            }

            data[] values = [
                { 1, "first" }, { 2, "second" }, { 3, "third" }
            ];

            data key = { 2, NULL };

            data* result = SDL_bsearch(&key, values.ptr, values.length, data.sizeof, cast(SDL_CompareCallback)&compare);
        

\param key a pointer to a key equal to the element being searched for. \param base a pointer to the start of the array. \param nmemb the number of elements in the array. \param size the size of the elements in the array. \param compare a function used to compare elements in the array. \returns a pointer to the matching element in the array, or NULL if not found.

\threadsafety It is safe to call this function from any thread.

\since This function is available since SDL 3.2.0.

\sa SDL_bsearch_r \sa SDL_qsort

Meta