Crear funciones booleanas en C++

Jinku Hu 12 octubre 2023
  1. Implementar la comparación del tamaño de las cadenas como una función booleana
  2. Implementar la función booleana que devuelve si el elemento con clave específica existe en un mapa
Crear funciones booleanas en C++

Este artículo introducirá cómo crear funciones booleanas en C++.

Implementar la comparación del tamaño de las cadenas como una función booleana

La función booleana denota la función que devuelve un valor de tipo bool. La estructura de la función booleana puede ser la misma que la de cualquier otra función. En el siguiente ejemplo, implementamos una función isLessString que compara dos tamaños de cadenas. La función devuelve true si la longitud de la primera cadena es menor que la de la segunda; de lo contrario, devuelve false.

Observe que ponemos la expresión de comparación después de la palabra clave return para pasar el valor resultante de nuevo a la función llamadora.

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

Resultado:

str1 is shorter than str2

Implementar la función booleana que devuelve si el elemento con clave específica existe en un mapa

Este ejemplo implementa la función booleana para encontrar si el elemento con una clave específica existe en un contenedor std::map. Dado que el tema principal es sobre la función de retorno de tipo bool, utilizaremos el método incorporado find en std::map en lugar de implementar la rutina de búsqueda por nuestra cuenta.

El método find toma un argumento - key y devuelve el iterador al elemento correspondiente. Si no se encuentra ningún elemento con la clave especificada, se devuelve el iterador end (más allá del final).

Nuestra función keyExistsInMap toma los argumentos map y string y llama al método find del map dado. Si el valor de retorno de la llamada no es igual a end, el iterador true se devuelve a la función que lo ha llamado; de lo contrario, devuelve 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;
}

Resultado:

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

Artículo relacionado - C++ Function