C++ STL Binäre Suche

Harshit Jindal 12 Oktober 2023
  1. C++ STL binary_search() Überblick
  2. C++ Programm für binäre Suche
C++ STL Binäre Suche
Hinweis
Wenn Sie die binäre Suche im Detail verstehen wollen, dann lesen Sie den Artikel Binärer Suchalgorithmus.

C++ stellt uns eine fertige Funktion binary_search() zur Verfügung, so dass wir die Funktion nicht selbst implementieren müssen. Es ist eine sehr einfach zu verwendende und effizient implementierte Methode und nicht fehleranfällig.

C++ STL binary_search() Überblick

Syntax

DEFAULT
    : template <class ForwardIterator, class T>
      bool
      binary_search(ForwardIterator first, ForwardIterator last, const T& val);

CUSTOM COMPARISON FUNCTION
    : template <class ForwardIterator, class T, class Compare>
      bool
      binary_search(ForwardIterator first, ForwardIterator last, const T& val,
                    Compare comp);

Hier kann T einer der folgenden Werte sein: int, float, short, long, byte, char, double, und auch ein benutzerdefiniertes Object.

Es wird geprüft, ob ein Element innerhalb von [first, last) mit dem Zielelement X übereinstimmt, wobei der binäre Suchalgorithmus verwendet wird. Standardmäßig wird der less-than-Operator verwendet, um Elemente zu vergleichen, aber wir können auch unsere eigene benutzerdefinierte comp bereitstellen, wie in der zweiten Vorlage oben beschrieben.

Parameter

first Ein Vorwärts-Iterator, der auf das erste Element im angegebenen Array-Bereich zeigt.
last Ein Vorwärts-Iterator, der auf das letzte Element im angegebenen Array-Bereich zeigt.
comp Eine benutzerdefinierte binäre Prädikatsfunktion, die zwei Vorwärts-Iteratoren als Argumente akzeptiert und true zurückgibt, wenn die beiden Argumente in der richtigen Reihenfolge vorhanden sind. Sie verändert keine Argumente und folgt der strengen schwachen Reihenfolge, um die Elemente zu ordnen.
val Das Zielelement, das wir innerhalb des angegebenen Array-Bereichs suchen.

Zurück

Wenn das Zielelement gefunden wird, wird true zurückgegeben; andernfalls wird false zurückgegeben.

C++ Programm für binäre Suche

#include <bits/stdc++.h>
using namespace std;

int main() {
  vector<int> v = {1, 2, 3, 4, 5, 6};

  if (binary_search(v.begin(), v.end(), 5)) {
    cout << "Element found" << endl;
  } else {
    cout << "Element not found" << endl;
  }

  return 0;
}
Harshit Jindal avatar Harshit Jindal avatar

Harshit Jindal has done his Bachelors in Computer Science Engineering(2021) from DTU. He has always been a problem solver and now turned that into his profession. Currently working at M365 Cloud Security team(Torus) on Cloud Security Services and Datacenter Buildout Automation.

LinkedIn

Verwandter Artikel - C++ Algorithm