Utiliser les fonctions Void en C++

Jinku Hu 12 octobre 2023
  1. Utilisez la fonction void pour trouver quelle chaîne est la plus longue
  2. Utilisez la fonction void pour trouver si la clé existe dans une carte
  3. Utilisez la fonction void pour trier les éléments dans le vecteur
Utiliser les fonctions Void en C++

Cet article présente plusieurs méthodes d’utilisation des fonctions void en C++.

Utilisez la fonction void pour trouver quelle chaîne est la plus longue

Les fonctions qui n’ont pas de valeur de retour ont le type void spécifié comme paramètre de retour. Dans les fonctions void, l’instruction implicite return est appelée après la dernière instruction du corps de la fonction. Notez que l’instruction explicite return peut être placée dans le corps de la fonction void où le flux de contrôle doit être déplacé immédiatement vers la fonction appelante. Dans l’exemple suivant, la fonction isLessString contient la seule instruction conditionnelle pour afficher les chaînes correspondantes sur la console, et le return implicite est exécuté après.

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

Production:

string_1 is shorter than string_2

Utilisez la fonction void pour trouver si la clé existe dans une carte

Dans ce cas, la fonction void est utilisée pour implémenter la fonction de recherche de clé pour le conteneur std::map. Notez que le résultat est communiqué en imprimant la constante chaîne correspondante dans le flux cout. Bien que ce ne soit pas la méthode préférée pour transmettre les données en interne dans le programme, elle peut être utilisée pour indiquer des informations à l’utilisateur 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;
}

Production:

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

Utilisez la fonction void pour trier les éléments dans le vecteur

Alternativement, on peut implémenter une fonction wrapper pour l’algorithme std::sort qui prend l’objet vector comme référence et trie ses éléments par ordre croissant. Notez que les fonctions void n’ont généralement pas les moyens de communiquer l’échec aux fonctions appelantes, il faut donc toujours en tenir compte lors de la conception de la solution.

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

Production:

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

Article connexe - C++ Function