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

  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

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 <iostream>
#include <algorithm>
#include <iterator>
#include <map>

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

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 <iostream>
#include <algorithm>
#include <iterator>
#include <map>

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

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

Article connexe - C++ Function

  • Le contrôle de la résolution atteint la fin de l'erreur de fonction non vide en C++
  • Accéder aux fonctions des membres depuis un pointeur jusqu'à un vecteur en C++