Verwenden von Void-Funktionen in C++

Jinku Hu 12 Oktober 2023
  1. Verwenden von die Funktion void zum herauszufinden, welche Zeichenkette länger ist
  2. Die Funktion void verwenden, um herauszufinden, ob ein Schlüssel in einer Map vorhanden ist
  3. Verwendung der Funktion void zum Sortieren von Elementen im Vektor
Verwenden von Void-Funktionen in C++

Dieser Artikel zeigt verschiedene Methoden zur Verwendung von void-Funktionen in C++.

Verwenden von die Funktion void zum herauszufinden, welche Zeichenkette länger ist

Für Funktionen ohne Rückgabewert wird der Typ void als Rückgabeparameter angegeben. In void-Funktionen wird die implizite return-Anweisung nach der letzten Anweisung des Funktionskörpers aufgerufen. Beachten Sie, dass die explizite Anweisung return in den Funktionskörper void eingefügt werden kann, in dem der Kontrollfluss sofort in die Aufruferfunktion verschoben werden muss. Im folgenden Beispiel enthält die Funktion isLessString die einzige bedingte Anweisung zum Drucken der entsprechenden Zeichenketten an die Konsole, und die implizite return wird danach ausgeführt.

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

Ausgabe:

string_1 is shorter than string_2

Die Funktion void verwenden, um herauszufinden, ob ein Schlüssel in einer Map vorhanden ist

In diesem Fall wird die Funktion void verwendet, um die Schlüsselsuchfunktion für den Container std::map zu implementieren. Beachten Sie, dass das Ergebnis durch Drucken der entsprechenden Zeichenkettenkonstante in den Stream cout übertragen wird. Obwohl dies nicht die bevorzugte Methode zum internen Übergeben der Daten im Programm ist, kann sie verwendet werden, um dem Endbenutzer Informationen anzuzeigen.

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

Ausgabe:

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

Verwendung der Funktion void zum Sortieren von Elementen im Vektor

Alternativ kann eine Wrapper-Funktion für den Algorithmus std::sort implementiert werden, die das Objekt vector als Referenz verwendet und seine Elemente in aufsteigender Reihenfolge sortiert. Beachten Sie, dass void-Funktionen normalerweise nicht über die Mittel verfügen, um den Fehler an die Anruferfunktionen zu übermitteln. Daher sollte beim Entwerfen der Lösung immer berücksichtigt werden.

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

Ausgabe:

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

Verwandter Artikel - C++ Function