Crea funzioni booleane in C++

Jinku Hu 12 ottobre 2023
  1. Implementa il confronto delle dimensioni delle stringhe come funzione booleana
  2. Implementa la funzione booleana che restituisce se l’elemento con una chiave specifica esiste in una mappa
Crea funzioni booleane in C++

Questo articolo introdurrà come creare funzioni booleane in C++.

Implementa il confronto delle dimensioni delle stringhe come funzione booleana

La funzione booleana denota la funzione che restituisce un valore di tipo bool. La struttura della funzione booleana può essere la stessa di qualsiasi altra funzione. Nell’esempio seguente, implementiamo una funzione isLessString che confronta le dimensioni di due stringhe. La funzione restituisce true se la lunghezza della prima stringa è minore della seconda; in caso contrario, restituisce false.

Notare che inseriamo l’espressione di confronto dopo la parola chiave return per restituire il valore del risultato alla funzione chiamante.

#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;
}

Produzione:

str1 is shorter than str2

Implementa la funzione booleana che restituisce se l’elemento con una chiave specifica esiste in una mappa

Questo esempio implementa la funzione booleana per trovare se l’elemento con una chiave specifica esiste in un contenitore std::map. Poiché l’argomento principale riguarda il tipo di ritorno della funzione bool, utilizzeremo il metodo integrato find in std::map invece di implementare la routine di ricerca da soli.

Il metodo find accetta un argomento - key e restituisce l’iteratore all’elemento corrispondente. Se non viene trovato alcun elemento con la chiave specificata, viene restituito l’iteratore end (passato-la-fine).

La nostra funzione keyExistsInMap accetta argomenti map e string e chiama il metodo find dalla data map. Se il valore di ritorno della chiamata non è uguale a end, l’iteratore true viene restituito alla funzione chiamante; in caso contrario, restituisce 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;
}

Produzione:

Key exists
Key does not exist
Autore: 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

Articolo correlato - C++ Function