Erstellen von booleschen Funktionen in C++

Jinku Hu 12 Oktober 2023
  1. Stringgrößenvergleich als boolesche Funktion implementieren
  2. Boolesche Funktion implementieren, die zurückgibt, ob das Element mit einem bestimmten Schlüssel in einer Map vorhanden ist
Erstellen von booleschen Funktionen in C++

Dieser Artikel führt in die Erstellung boolescher Funktionen in C++ ein.

Stringgrößenvergleich als boolesche Funktion implementieren

Als boolesche Funktion wird die Funktion bezeichnet, die einen Wert vom Typ bool zurückgibt. Die Struktur der booleschen Funktion kann die gleiche sein wie die jeder anderen Funktion. Im folgenden Beispiel implementieren wir eine Funktion isLessString, die die Größe zweier Strings vergleicht. Die Funktion gibt true zurück, wenn die Länge der ersten Zeichenkette kleiner als die der zweiten Zeichenkette ist; andernfalls gibt sie false zurück.

Beachten Sie, dass wir den Vergleichsausdruck hinter das Schlüsselwort return setzen, um den Ergebniswert an die aufrufende Funktion zurückzugeben.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>

using std::cout;
using std::endl;
using std::map;
using std::string;

bool isLessString(string &s1, string &s2) { return s1.size() < s2.size(); }

int main() {
  string str1 = "This string shall be arbitrary";
  string str2 = "Let this string be compared compared";

  if (isLessString(str1, str2)) cout << "str1 is shorter than str2";
  cout << endl;

  return EXIT_SUCCESS;
}

Ausgabe:

str1 is shorter than str2

Boolesche Funktion implementieren, die zurückgibt, ob das Element mit einem bestimmten Schlüssel in einer Map vorhanden ist

Dieses Beispiel implementiert die boolesche Funktion, die herausfinden soll, ob das Element mit einem bestimmten Schlüssel in einem std::map-Container existiert. Da das Hauptthema der Funktion der Rückgabetyp bool ist, werden wir die eingebaute Methode find in std::map verwenden, anstatt die Suchroutine selbst zu implementieren.

Die Methode find nimmt ein Argument - key - und gibt den Iterator zum entsprechenden Element zurück. Wenn kein Element mit dem angegebenen Schlüssel gefunden wird, wird der Iterator end(past-the-end) zurückgegeben.

Unsere Funktion keyExistsInMap nimmt die Argumente map und string entgegen und ruft die Methode find der angegebenen map auf. Wenn der Rückgabewert des Aufrufs ungleich end ist, wird der Iterator true an die aufrufende Funktion zurückgegeben; andernfalls wird false zurückgegeben.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>

using std::cout;
using std::endl;
using std::map;
using std::string;

bool keyExistsInMap(map<string, string>& m, const string& key) {
  if (m.find(key) != m.end()) {
    return true;
  } else {
    return false;
  }
}

int main() {
  map<string, string> veggy_map = {{
                                       "a",
                                       "Asparagus",
                                   },
                                   {
                                       "b",
                                       "Beetroot",
                                   },
                                   {
                                       "b",
                                       "Bedsetroot",
                                   },
                                   {
                                       "g",
                                       "Ginger",
                                   },
                                   {
                                       "m",
                                       "Melon",
                                   },
                                   {
                                       "p",
                                       "Pumpkin",
                                   },
                                   {
                                       "s",
                                       "Spinach",
                                   }};

  keyExistsInMap(veggy_map, "a") ? cout << "Key exists" << endl
                                 : cout << "Key does not exist\n"
                                        << endl;

  keyExistsInMap(veggy_map, "z") ? cout << "Key exists" << endl
                                 : cout << "Key does not exist\n"
                                        << endl;

  return EXIT_SUCCESS;
}

Ausgabe:

Key exists
Key does not exist
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Verwandter Artikel - C++ Function