Usar funciones vacías en C++

Jinku Hu 12 octubre 2023
  1. Utilice la función void para encontrar qué cadena es más larga
  2. Utilice la función void para encontrar si la clave existe en un mapa
  3. Utilice la función void para ordenar elementos en Vector
Usar funciones vacías en C++

Este artículo demostrará varios métodos sobre cómo utilizar funciones void en C++.

Utilice la función void para encontrar qué cadena es más larga

Las funciones que no tienen valor de retorno tienen el tipo void especificado como parámetro de retorno. En las funciones void, la sentencia return implícita se llama después de la última sentencia del cuerpo de la función. Tenga en cuenta que la declaración explícita return se puede colocar en el cuerpo de la función void donde el flujo de control debe moverse a la función de llamada inmediatamente. En el siguiente ejemplo, la función isLessString contiene la única instrucción condicional para imprimir las cadenas correspondientes en la consola, y el return implícito se ejecuta después de él.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>

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

void isLessString(string &s1, string &s2) {
  s1.size() < s2.size() ? cout << "string_1 is shorter than string_2" << endl
                        : cout << "string_2 is shorter than string_1" << endl;
}

int main() {
  string str1 = "This string has arbitrary contents";
  string str2 = "Another string with random contents";

  isLessString(str1, str2);

  return EXIT_SUCCESS;
}

Producción :

string_1 is shorter than string_2

Utilice la función void para encontrar si la clave existe en un mapa

En este caso, la función void se utiliza para implementar la función de búsqueda de claves para el contenedor std::map. Tenga en cuenta que el resultado se comunica imprimiendo la constante de cadena correspondiente al flujo cout. Aunque este no es el método preferido para pasar los datos internamente en el programa, puede usarse para indicar información al usuario final.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>

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

void keyExistsInMap(map<string, string>& m, const string& key) {
  m.find(key) != m.end() ? cout << "Key exists in a map" << endl
                         : cout << "Key does not exist in a map" << endl;
}

int main() {
  map<string, string> veggy_map = {{
                                       "a",
                                       "Ali",
                                   },
                                   {
                                       "m",
                                       "Malvo",
                                   },
                                   {
                                       "p",
                                       "Pontiac",
                                   },
                                   {
                                       "s",
                                       "Sensi",
                                   }};

  keyExistsInMap(veggy_map, "s");
  keyExistsInMap(veggy_map, "x");

  return EXIT_SUCCESS;
}

Producción :

Key exists in a map
Key does not exist in a map

Utilice la función void para ordenar elementos en Vector

Alternativamente, se puede implementar una función contenedora para el algoritmo std::sort que toma el objeto vector como referencia y clasifica sus elementos en orden ascendente. Tenga en cuenta que las funciones void generalmente carecen de los medios para comunicar la falla a las funciones del llamante, por lo que siempre se debe tener en cuenta al diseñar la solución.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <map>

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

void sortVector(vector<string> &vec) {
  std::sort(vec.begin(), vec.end(),
            [](const auto &x, const auto &y) { return x < y; });
}

int main() {
  vector<string> arr = {
      "element",  "implementation", "or",   "the", "execution", "dependent",
      "template", "character",      "that", "all", "via",       "class"};

  sortVector(arr);

  for (const auto &item : arr) {
    cout << item << "; ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Producción :

all; character; class; dependent; element; execution; implementation; or; template; that; the; via;
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