namespace cpp {}

C++ lernen, kennen, anwenden

Benutzer-Werkzeuge

Webseiten-Werkzeuge


kennen:lib:qsort

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.


kennen:lib:qsort [2019-11-20 16:02] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 +====== qsort() ======
 +''#include'' [[..:include:cstdlib]]
 +
 +<code cpp>
 +void qsort (void *array, size_t count, size_t size, 
 +            int (*compare)(const void*, const void*)) 
 +</code>
 + Quick Sort.
 +
 +==== Parameter ====
 +| ''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 ist in C++ ein Typecast erforderlich.
 +
 +==== Ergebnis ====
 +Rückgabewert: keiner.
 +
 +==== Siehe auch ====
 +[[sort]].
 +
 +==== Beispiel ====
 +<code cpp qsort.cpp>
 +#include <cstdlib>
 +#include <iostream>
 +
 +int vergleich(const double* x, const double* y)
 +{
 +  return *x - *y;
 +}
 +
 +int main()
 +{
 +  using namespace std;
 +  double arr[] = { 3, 5, 4, 1, 2 };
 +
 +  qsort(arr, 5, sizeof(double), 
 +        (int (*)(const void*, const void*)) vergleich);
 +
 +  cout << arr[0] << "..." << arr[4] << '\n';
 +}
 +</code>
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki