Programme permettant de compter le nombre de fois que se répète un sous-ensemble dans un ensemble.
Voici le code :
#include <iostream>
#include <string>
#include <algorithm>
int main ()
{
std::string const sentence { "La beaute de son visage se refletait sur son monde a elle,\net son Seigneur lui fait dons d'une beaute sans egale que nulle\nne peut s'empecher de la jalouser farouchement. Cette beaute qui fut\na l'origine de la creation divine." };
std::string const subset { "beau" };
long int distance { std::distance(std::begin(subset), std::end(subset)) };
int count_subset { 0 };
auto it_begin_sentence { std::begin(sentence) };
auto iterator { std::search(it_begin_sentence, std::end(sentence), std::begin(subset), std::end(subset)) };
while (iterator != std::end(sentence))
{
++count_subset;
iterator += distance;
std::cout << *iterator << '\n'; // pour voire l'element sur lequel pointe iterator a chaque tour de boucle
it_begin_sentence = iterator;
iterator = std::search(it_begin_sentence, std::end(sentence), std::begin(subset), std::end(subset));
}
std::cout << count_subset << '\n';
return 0;
}
+0
-0