Créer des fonctions booléennes en C++
- Implémenter la comparaison de la taille des chaînes de caractères comme fonction booléenne
- Implémenter une fonction booléenne qui retourne si l’élément avec une clé spécifique existe dans une carte
Cet article présente comment créer des fonctions booléennes en C++.
Implémenter la comparaison de la taille des chaînes de caractères comme fonction booléenne
La fonction booléenne désigne la fonction qui retourne une valeur de type bool
. La structure de la fonction booléenne peut être la même que celle de toute autre fonction. Dans l’exemple ci-dessous, nous implémentons une fonction isLessString
qui compare la taille de deux chaînes de caractères. La fonction retourne true
si la longueur de la première chaîne est inférieure à celle de la seconde ; sinon, elle retourne false
.
Notez que nous mettons l’expression de comparaison après le mot-clé return
pour renvoyer la valeur du résultat à la fonction appelante.
#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;
}
Production :
str1 is shorter than str2
Implémenter une fonction booléenne qui retourne si l’élément avec une clé spécifique existe dans une carte
Cet exemple implémente la fonction booléenne pour trouver si l’élément avec une clé spécifique existe dans un conteneur std::map
. Puisque le sujet principal concerne le retour de fonction de type bool
, nous utiliserons la méthode intégrée find
dans std::map
au lieu d’implémenter la routine de recherche par nous-mêmes.
La méthode find
prend un argument - key
et retourne l’itérateur à l’élément correspondant. Si aucun élément n’est trouvé avec la clé spécifiée, l’itérateur end
(au-delà de la fin) est renvoyé.
Notre fonction keyExistsInMap
prend les arguments map
et string
et appelle la méthode find
de la map
donnée. Si la valeur de retour de l’appel n’est pas égale à l’itérateur end
, true
est renvoyé à la fonction appelante ; sinon, elle retourne false
.
#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;
}
Production :
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