Créer des fonctions booléennes en C++

Jinku Hu 12 octobre 2023
  1. Implémenter la comparaison de la taille des chaînes de caractères comme fonction booléenne
  2. Implémenter une fonction booléenne qui retourne si l’élément avec une clé spécifique existe dans une carte
Créer des fonctions booléennes en C++

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
Auteur: 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

Article connexe - C++ Function