kennen:lib:bsearch
Inhaltsverzeichnis
bsearch()
#include <cstdlib>
void * bsearch (const void *key, const void *array, size_t count, size_t size, int (*compare)(const void*, const void*))
Binäre Suche.
Parameter
key | gesuchter Wert |
array | Feldanfang |
count | Anzahl der Feldelemente |
size | Größe eines Feldelementes in Byte |
compare | Vergleichsfunktion |
Die Vergleichsfunktion compare(x,y)
muss zwei Zeiger
auf Feldelemente übernehmen und eine Ganzzahl liefern:
compare(x,y) < 0 | *x < *y |
|
compare(x,y) ==0 | für | *x ==*y |
compare(x,y) > 0 | *x > *y |
Wegen der strengeren Typprüfung sind in C++ Typecasts erforderlich.
Ergebnis
Rückgabewert:
Zeiger auf ein Feldelement mit dem gesuchten Wert key
,
sonst NULL
.
Siehe auch
Beispiel
- bsearch.cpp
#include <cstdlib> #include <iostream> int vergleich(const double* x, const double* y) { return *x - *y; } int main() { double arr[] = { 1, 2, 3, 4, 5 }; double gesucht = 2; double *ptr; ptr = (double*) std::bsearch(&gesucht, arr, 5, sizeof(double), (int (*)(const void*, const void*)) vergleich); if (ptr) { std::cout << *ptr << '\n'; } else { std::cout << "nicht gefunden\n"; } }
kennen/lib/bsearch.txt · Zuletzt geändert: 2019-11-20 15:04 von 127.0.0.1