#include "livreRecettes.hpp" #include "recetteAffichage.hpp" #include "ingredient.hpp" #include #include using namespace std; namespace appli { map> LivreRecettes::rechercherRecette(const string &nomRecette) { map> rech; for(auto it = livre.cbegin(); it != livre.cend(); ++it) { if(it->first.getNom() == nomRecette) { rech.insert({it->first, it->second}); } } return rech; } map LivreRecettes::faireListeCourses(list l) { string nomRecette; int rep; cout << "Quelle recette voulez vous ? " << endl; cin >> nomRecette; map>::iterator it = livre.find(nomRecette); // it = this->rechercherRecette(nomRecette); for(const Ingredient &ing : it->second) { cout << "avez vous du, des " << ing << " ? (0 : non/1 : oui)" << endl; cin >> rep; if(rep == 0) { l.push_back(ing); } } } void LivreRecettes::ajouter(const Recette &r, list l) { unordered_set ing; if(livre.find(r) != livre.end()) { cout << "recette déjà présente" << endl; return; } for(Ingredient i : l) { unordered_set::iterator it2 = ing.find(i); if(it2 == ing.end()) { ing.insert(i); } else { Quantite q = i.getQuantite() + it2->getQuantite(); ing.erase(it2); ing.insert(Ingredient{i.getAliment(), q}); } } livre.insert({r, ing}); } void LivreRecettes::afficherNomRecette() { afficherNoms(livre); } void LivreRecettes::afficher() { afficherTout(livre); } }