Ne plus répondre j’ai compris ce que le code faisait merci.
Bonjour à tous, comment allez-vous ?
Petite question sur l’exercice d’algorithm sur le site. J’aimerais savoir ce que ce code fait exactement car j’ai un peu de mal à tout comprendre, si quelqu’un peut m’aider ça serais cool merci.
Voici le code:
#include <algorithm>
#include <iostream>
#include <string>
int main()
{
std::string const phrase { "Exemple illustrant le tutoriel C++ de Zeste de Savoir, mais un peu plus long." };
// Pour garder en mémoire le début de chaque mot.
auto iterateur_precedent { std::begin(phrase) };
auto iterateur_espace { std::find(std::begin(phrase), std::end(phrase), ' ') };
// Tant qu'on est pas à la fin de la phrase.
while (iterateur_espace != std::end(phrase))
{
std::string const mot { iterateur_precedent, iterateur_espace };
auto const total_e { std::count(std::begin(mot), std::end(mot), 'e') };
std::cout << "Dans le mot '" << mot << "', il y a " << total_e << " fois la lettre 'e'." << std::endl;
// On incrémente pour ne pas garder l'espace au début, car iterateur_espace pointe déjà sur un espace.
++iterateur_espace;
// On met à jour notre itérateur de sauvegarde.
//Qu'est-ce qu'il fait ici ? il met le second espace dans iterateur_precedent ou bien ?
iterateur_precedent = iterateur_espace;
// On cherche la première occurrence dans le nouveau sous-ensemble.
iterateur_espace = std::find(iterateur_espace, std::end(phrase), ' ');
}
// Une dernière fois pour analyser les caractères restants.
std::string const dernier_mot { iterateur_precedent, std::end(phrase) };
std::cout << "Dans le dernier mot '" << dernier_mot << "', il y a " << std::count(iterateur_precedent, std::end(phrase), 'e') << " fois la lettre 'e'." << std::endl;
return 0;
}
+0
-0