Erstellen von booleschen Funktionen in C++
- Stringgrößenvergleich als boolesche Funktion implementieren
- Boolesche Funktion implementieren, die zurückgibt, ob das Element mit einem bestimmten Schlüssel in einer Map vorhanden ist
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
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