Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /****************************************************************************
- * Fichier: Panier.h
- * Auteur: Thomas Forest et Gabriel Cote-Carrier
- * Date: 28 mars 2015
- * Description: Definition de la classe panier
- ****************************************************************************/
- #ifndef PANIER_H
- #define PANIER_H
- #include <iostream>
- #include <list>
- #include <iterator>
- #include "Foncteur.h"
- #include <algorithm>
- using namespace std;
- template <typename T>
- class Panier
- {
- public:
- Panier(unsigned int id);
- unsigned int getId() const;
- list<T> getListe() const;
- void ajouter(T item);
- T obtenirPlusPetitElement() const;
- T obtenirPlusGrandElement() const;
- void supprimer(unsigned int id);
- void supprimer(T type);
- friend ostream& operator<< (ostream& os, const Panier<T>& article);
- protected:
- unsigned int id_;
- list<T> liste_;
- };
- /****************************************************************************
- * Fonction: Panier::Panier
- * Description: Constructeur par parametre
- * Paramètres: unsigned int id: identifiant du panier
- * Retour: aucun
- ****************************************************************************/
- template <typename T>
- Panier<T>::Panier(unsigned int id)
- : id_(id){}
- /****************************************************************************
- * Fonction: Panier::getID
- * Description: Fonction d'acces a l'identifiant du panier
- * Paramètres: aucun
- * Retour: l'identifiant du panier
- ****************************************************************************/
- template <typename T>
- unsigned int Panier<T>::getId() const{
- return id_;
- }
- /****************************************************************************
- * Fonction: Panier::getListe
- * Description: Fonction d'acces au conteneur d'element
- * Paramètres: aucun
- * Retour: liste des elements dans le panier
- ****************************************************************************/
- template <typename T>
- list<T> Panier<T>::getListe() const{
- return liste_;
- }
- /****************************************************************************
- * Fonction: Panier::ajouter
- * Description: Fonction permettant d'ajouter un element au panier
- * Paramètres: T item: l'item a ajouter dans le panier
- * Retour: aucun
- ****************************************************************************/
- template <typename T>
- void Panier<T>::ajouter(T item){
- liste_.insert(liste_.end(), item);
- }
- /****************************************************************************
- * Fonction: Panier::obtenirPlusPetitElement
- * Description: Fonction d'acces au plus petit element du panier
- * Paramètres: aucun
- * Retour: le plus petit element du panier
- ****************************************************************************/
- template <typename T>
- T Panier<T>::obtenirPlusPetitElement() const{
- list<T>::iterator pos = min_element(liste_.begin(), liste_.end());
- return pos.get();
- }
- /****************************************************************************
- * Fonction: Panier::obtenirPlusGrandElement
- * Description: Fonction d'acces au plus grand element du panier
- * Paramètres: aucun
- * Retour: le plus grand element du panier
- ****************************************************************************/
- template <typename T>
- T Panier<T>::obtenirPlusGrandElement() const{
- list<T>::iterator pos = max_element(liste_.begin(), liste_.end());
- return pos.get();
- }
- /****************************************************************************
- * Fonction: Panier::supprimer
- * Description: Fonction permettant de supprimer un element du panier
- * Paramètres: unsigned int id: identifiant de l'item a supprimer
- * Retour: aucun
- ****************************************************************************/
- template <typename T>
- void Panier<T>::supprimer(unsigned int id){
- list<T>::iterator pos = liste_.begin();
- list<T>::iterator end = liste_.end();
- list<T>::iterator result;
- Verification<T> verification;
- result = liste_.find_if(beg, end, verification(id));
- remove(result);
- }
- /****************************************************************************
- * Fonction: Panier::supprimer
- * Description: Fonction permettant de supprimer tout les elements ne respectant pas le parametre
- * Paramètres: S type: type des items que l'on veux conserver
- * Retour: aucun
- ****************************************************************************/
- template <typename T>void Panier<T>::supprimer(T type){
- // Comparaison<T,S> comparaison
- // remove(liste_.begin(), liste_.end(),comparaison(type)); //this... i am so not convinced
- }
- /****************************************************************************
- * Fonction: ostream& operator
- * Description: Fonction permettant d'afficher tout les elements du panier
- * Paramètres: ostream& os : la sortie à utiliser
- Panier& panier : le panier a afficher
- * Retour: l'affichage
- ****************************************************************************/
- template <typename T>
- ostream& operator<< (ostream& os, const Panier<T>& panier){
- for_each(panier.getListe().begin(), panier.getListe().end(), << ); //le doute est encore real O_o
- return os;
- }
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement