nathanaaaa

Untitled

Jan 21st, 2018
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.93 KB | None | 0 0
  1. /**
  2.  * @file ConteneurTD.cpp
  3.  * Projet sem04-tp-Cpp3
  4.  * @author l'équipe pédagogique
  5.  * @version 1 19/12/05
  6.  * @brief Composant de conteneur d'items en mémoire dynamique à capacité fixe
  7.  * Structures de données et algorithmes - DUT1 Paris 5
  8.  */
  9.  
  10. #include <iostream>
  11. using namespace std;
  12. #include <cassert>
  13.  
  14. #include "ConteneurTD.h"
  15.  
  16. /**
  17.  * @brief Initialise un conteneur d'items vide
  18.  * Allocation en mémoire dynamique du conteneur d'items de capacité capa
  19.  * @see detruire pour sa désallocation en fin d'utilisation
  20.  * @param[out] c : le conteneur d'items
  21.  * @param [in] capa : capacité du tableau
  22.  * @pre capa>0
  23.  */
  24. void initialiser(ConteneurTD& c, unsigned int capa) {
  25.     assert(capa>0);
  26.     c.capacite = capa;
  27.     // arrêt du programme en cas d'erreur d'allocation
  28.     c.tab = new BlocData[capa];
  29.     /* Affichage pour une trace de l'allocation
  30.      * Ne jamais faire d'affichage dans une fonction
  31.      * dont ce n'est pas le rôle explicite */ 
  32.     //cout << "Allocation de " << t.capacite*sizeof(Item)<< " octets"<< endl;
  33. }
  34.  
  35. /**
  36.  * @brief Désalloue un conteneur d'items en mémoire dynamique
  37.  * @see initialiser le conteneur d'items a déjà été alloué
  38.  * @param[out] c : le conteneur d'items
  39.  */
  40. void detruire(ConteneurTD& c) {
  41.     delete [] c.tab;
  42.     c.tab = NULL;
  43. }
  44.  
  45. /**
  46.  * @brief Lecture d'un item dans un conteneur
  47.  * @param[in] c : le conteneur d'items
  48.  * @param[in] i : l'indice de l'item dans le conteneur
  49.  * @return l'item à la position i
  50.  * @pre i < c.capacite  
  51.  */
  52. BlocData lire(const ConteneurTD& c, unsigned int i) {
  53.     assert(i < c.capacite);
  54.     return c.tab[i];
  55. }
  56.  
  57. /**
  58.  * @brief Ecrire un item dans un conteneur d'items
  59.  * @param[out] c : le conteneur d'items
  60.  * @param[in] i : la position où ajouter/modifier l'item
  61.  * @param[in] item : l'item à écrire
  62.  * @pre i < c.capacite
  63.  */
  64. void ecrire(ConteneurTD& c, unsigned int i, const BlocData& it) {
  65.     assert(i < c.capacite);
  66.     c.tab[i] = it;
  67. }
Add Comment
Please, Sign In to add comment