Advertisement
PierrotLL

Class List

Dec 3rd, 2011
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.69 KB | None | 0 0
  1. /*
  2. List.h
  3. -------
  4. Classe de tableau dynamique
  5. Dernière modification: 20/06/2009
  6. */
  7. #ifndef _LIST
  8. #define _LIST
  9.  
  10. template <typename T> class List
  11. {
  12.     private:
  13.         T* t;
  14.         int nb, size;
  15.  
  16.     public:
  17.         List() { nb=size=0; }
  18.         ~List() { if(size) delete[] t; }
  19.         int nbItem() { return nb; }
  20.  
  21.         void clear()
  22.         {
  23.             if(size) delete[] t;
  24.             nb=size=0;
  25.         }
  26.  
  27.         T& operator[](int n)
  28.         {
  29.             if(n>=0 && n<nb) return t[n];
  30.             return t[0];
  31.         }
  32.  
  33.         List<T>& operator= (List<T> &list)
  34.         {
  35.             clear();
  36.             size = nb = list.nbItem();
  37.             t = new T[size];
  38.             for(int i=0 ; i<nb ; i++)
  39.                 t[i] = list[i];
  40.             return *this;
  41.         }
  42.  
  43.         void add(T& item)
  44.         {
  45.             if(size)
  46.             {
  47.                 if(nb<size)
  48.                     t[nb]=item;
  49.                 else
  50.                 {
  51.                     size++;
  52.                     T* temp = new T[size];
  53.                     for(int i=0 ; i<nb ; i++)
  54.                         temp[i] = t[i];
  55.                     delete[] t;
  56.                     t = temp;
  57.                     t[nb] = item;
  58.                 }
  59.             }
  60.             else
  61.             {
  62.                 t = new T[1];
  63.                 t[0] = item;
  64.                 size=1;
  65.             }
  66.             nb++;
  67.         }
  68.  
  69.         void del(int n)
  70.         {
  71.             if(n>=0 && n<nb)
  72.             {
  73.                 for(int i=n ; i<nb ; i++)
  74.                     t[i] = t[i+1];
  75.                 nb--;
  76.             }
  77.         }
  78.  
  79.         void delFirst(T& item)
  80.         {
  81.             int i;
  82.             for(i=0 ; i<nb ; i++)
  83.             {
  84.                 if(t[i]==item)
  85.                 {
  86.                     del(i);
  87.                     return;
  88.                 }
  89.             }
  90.         }
  91.  
  92.         void delAll(T& item)
  93.         {
  94.             for(int i=0 ; i<nb ; i++)
  95.             {
  96.                 if(t[i]==item)
  97.                 {
  98.                     del(i);
  99.                     i--;
  100.                 }
  101.             }
  102.         }
  103.  
  104.         bool exist(T& item)
  105.         {
  106.             for(int i=0; i<nb ; i++)
  107.             {
  108.                 if(t[i] == item)
  109.                     return true;
  110.             }
  111.             return false;
  112.         }
  113.  
  114.         int findFirst(T& item)
  115.         {
  116.             for(int i=0 ; i<nb ; i++)
  117.             {
  118.                 if(t[i] == item)
  119.                     return i;
  120.             }
  121.             return -1;
  122.         }
  123.  
  124.         T& last()
  125.         {
  126.             return t[nb-1];
  127.         }
  128. };
  129.  
  130. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement