Utiliser les fonctions Void en C++
-
Utilisez la fonction
void
pour trouver quelle chaîne est la plus longue -
Utilisez la fonction
void
pour trouver si la clé existe dans une carte -
Utilisez la fonction
void
pour trier les éléments dans le vecteur
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;
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