Advertisement
Guest User

Untitled

a guest
Apr 5th, 2015
180
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.15 KB | None | 0 0
  1. /****************************************************************************
  2. * Fichier: Panier.h
  3. * Auteur: Thomas Forest et Gabriel Cote-Carrier
  4. * Date: 28 mars 2015
  5. * Description: Definition de la classe panier
  6. ****************************************************************************/
  7.  
  8. #ifndef PANIER_H
  9. #define PANIER_H
  10.  
  11. #include <iostream>
  12. #include <list>
  13. #include <iterator>
  14. #include "Foncteur.h"
  15. #include <algorithm>
  16. using namespace std;
  17.  
  18. template <typename T>
  19. class Panier
  20. {
  21. public:
  22. Panier(unsigned int id);
  23. unsigned int getId() const;
  24. list<T> getListe() const;
  25. void ajouter(T item);
  26. T obtenirPlusPetitElement() const;
  27. T obtenirPlusGrandElement() const;
  28. void supprimer(unsigned int id);
  29. void supprimer(T type);
  30. friend ostream& operator<< (ostream& os, const Panier<T>& article);
  31.  
  32. protected:
  33. unsigned int id_;
  34. list<T> liste_;
  35.  
  36. };
  37.  
  38. /****************************************************************************
  39. * Fonction: Panier::Panier
  40. * Description: Constructeur par parametre
  41. * Paramètres: unsigned int id: identifiant du panier
  42. * Retour: aucun
  43. ****************************************************************************/
  44. template <typename T>
  45. Panier<T>::Panier(unsigned int id)
  46. : id_(id){}
  47.  
  48. /****************************************************************************
  49. * Fonction: Panier::getID
  50. * Description: Fonction d'acces a l'identifiant du panier
  51. * Paramètres: aucun
  52. * Retour: l'identifiant du panier
  53. ****************************************************************************/
  54. template <typename T>
  55. unsigned int Panier<T>::getId() const{
  56. return id_;
  57. }
  58.  
  59. /****************************************************************************
  60. * Fonction: Panier::getListe
  61. * Description: Fonction d'acces au conteneur d'element
  62. * Paramètres: aucun
  63. * Retour: liste des elements dans le panier
  64. ****************************************************************************/
  65. template <typename T>
  66. list<T> Panier<T>::getListe() const{
  67. return liste_;
  68. }
  69.  
  70. /****************************************************************************
  71. * Fonction: Panier::ajouter
  72. * Description: Fonction permettant d'ajouter un element au panier
  73. * Paramètres: T item: l'item a ajouter dans le panier
  74. * Retour: aucun
  75. ****************************************************************************/
  76. template <typename T>
  77. void Panier<T>::ajouter(T item){
  78. liste_.insert(liste_.end(), item);
  79. }
  80.  
  81. /****************************************************************************
  82. * Fonction: Panier::obtenirPlusPetitElement
  83. * Description: Fonction d'acces au plus petit element du panier
  84. * Paramètres: aucun
  85. * Retour: le plus petit element du panier
  86. ****************************************************************************/
  87. template <typename T>
  88. T Panier<T>::obtenirPlusPetitElement() const{
  89. list<T>::iterator pos = min_element(liste_.begin(), liste_.end());
  90. return pos.get();
  91. }
  92.  
  93. /****************************************************************************
  94. * Fonction: Panier::obtenirPlusGrandElement
  95. * Description: Fonction d'acces au plus grand element du panier
  96. * Paramètres: aucun
  97. * Retour: le plus grand element du panier
  98. ****************************************************************************/
  99. template <typename T>
  100. T Panier<T>::obtenirPlusGrandElement() const{
  101. list<T>::iterator pos = max_element(liste_.begin(), liste_.end());
  102. return pos.get();
  103. }
  104.  
  105. /****************************************************************************
  106. * Fonction: Panier::supprimer
  107. * Description: Fonction permettant de supprimer un element du panier
  108. * Paramètres: unsigned int id: identifiant de l'item a supprimer
  109. * Retour: aucun
  110. ****************************************************************************/
  111. template <typename T>
  112. void Panier<T>::supprimer(unsigned int id){
  113. list<T>::iterator pos = liste_.begin();
  114. list<T>::iterator end = liste_.end();
  115. list<T>::iterator result;
  116. Verification<T> verification;
  117. result = liste_.find_if(beg, end, verification(id));
  118. remove(result);
  119. }
  120.  
  121.  
  122. /****************************************************************************
  123. * Fonction: Panier::supprimer
  124. * Description: Fonction permettant de supprimer tout les elements ne respectant pas le parametre
  125. * Paramètres: S type: type des items que l'on veux conserver
  126. * Retour: aucun
  127. ****************************************************************************/
  128. template <typename T>void Panier<T>::supprimer(T type){
  129. // Comparaison<T,S> comparaison
  130. // remove(liste_.begin(), liste_.end(),comparaison(type)); //this... i am so not convinced
  131.  
  132. }
  133.  
  134. /****************************************************************************
  135. * Fonction: ostream& operator
  136. * Description: Fonction permettant d'afficher tout les elements du panier
  137. * Paramètres: ostream& os : la sortie à utiliser
  138. Panier& panier : le panier a afficher
  139. * Retour: l'affichage
  140. ****************************************************************************/
  141. template <typename T>
  142. ostream& operator<< (ostream& os, const Panier<T>& panier){
  143. for_each(panier.getListe().begin(), panier.getListe().end(), << ); //le doute est encore real O_o
  144. return os;
  145. }
  146.  
  147.  
  148. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement