Crea funzioni booleane in C++
- Implementa il confronto delle dimensioni delle stringhe come funzione booleana
- Implementa la funzione booleana che restituisce se l’elemento con una chiave specifica esiste in una mappa
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
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