Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- List.h
- -------
- Classe de tableau dynamique
- Dernière modification: 20/06/2009
- */
- #ifndef _LIST
- #define _LIST
- template <typename T> class List
- {
- private:
- T* t;
- int nb, size;
- public:
- List() { nb=size=0; }
- ~List() { if(size) delete[] t; }
- int nbItem() { return nb; }
- void clear()
- {
- if(size) delete[] t;
- nb=size=0;
- }
- T& operator[](int n)
- {
- if(n>=0 && n<nb) return t[n];
- return t[0];
- }
- List<T>& operator= (List<T> &list)
- {
- clear();
- size = nb = list.nbItem();
- t = new T[size];
- for(int i=0 ; i<nb ; i++)
- t[i] = list[i];
- return *this;
- }
- void add(T& item)
- {
- if(size)
- {
- if(nb<size)
- t[nb]=item;
- else
- {
- size++;
- T* temp = new T[size];
- for(int i=0 ; i<nb ; i++)
- temp[i] = t[i];
- delete[] t;
- t = temp;
- t[nb] = item;
- }
- }
- else
- {
- t = new T[1];
- t[0] = item;
- size=1;
- }
- nb++;
- }
- void del(int n)
- {
- if(n>=0 && n<nb)
- {
- for(int i=n ; i<nb ; i++)
- t[i] = t[i+1];
- nb--;
- }
- }
- void delFirst(T& item)
- {
- int i;
- for(i=0 ; i<nb ; i++)
- {
- if(t[i]==item)
- {
- del(i);
- return;
- }
- }
- }
- void delAll(T& item)
- {
- for(int i=0 ; i<nb ; i++)
- {
- if(t[i]==item)
- {
- del(i);
- i--;
- }
- }
- }
- bool exist(T& item)
- {
- for(int i=0; i<nb ; i++)
- {
- if(t[i] == item)
- return true;
- }
- return false;
- }
- int findFirst(T& item)
- {
- for(int i=0 ; i<nb ; i++)
- {
- if(t[i] == item)
- return i;
- }
- return -1;
- }
- T& last()
- {
- return t[nb-1];
- }
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement