Site hosted by Angelfire.com: Build your free website today!

#define __VECTOR_H

enum Bool { false, true };

template <class T>
class Vector                             //turbo-array
{     private:                               //PRIVATE gedeelte
unsigned int Count;                     //aantal elementen in de vector
unsigned int Max;                                     //max aantal elementen in de vector
T** Element;                         //Dynamische array waarin alles van het type opgeslagen wordt
public:                         //PUBLIC gedeelte
Vector( unsigned int max = 32767 )                     //constructor
{ Max = max;
Count = 0;
}
~Vector()
{ delete[] Element;
}
Bool addElement( T object )                                 //element toevoegen
{ if( Count < Max )                                         //kijken als het object er nog bij kan
{ const int Maximum = Max;
Element[Count] = new T[Maximum];                     //object maken en adres opslaan
if( Element[Count] )                                     //kijken als het object gemaakt is
{ Element[Count] = &object;                         //element instanti‰ren met object
Count++;                                                         //aantal vermeerderen
}
else
{ return false;                                                 //fout raporteren
}
}
else
{ return false;                                                 //fout raporteren
}
return true;
}
Bool removeElement( int index )                         //het element in de opgegeven index verwijderen
{ if( index < Count )                                             //controleren als het te verwijderen object bestaat
{ for( int i = index; i < Count-1; i++ )
{ Element[i] = Element[i+1];                         //elementen opschuiven
}
Count--;                                                         //aantal elementen verminderen
delete Element[Count];                                     //geheugen vrijgeven
}
else
{ return false;
}
return true;
}
void removeAllElements()                                         //alle elementen verwijderen
{ delete[] Element;                                     //geeft de array van pointers naar de objecten vrij
}
unsigned int size()                                 //geeft het aantal elementen terug dat in de vector is opgeslagen
{ return Count;
}
unsigned int max()                                     //geeft het max aantal elementen terug dat in de vector kan worden opgeslagen
{ return Max;
}
T operator[] ( unsigned int index )                                     //overloaded []-operator
{ if( index < Count )
{ return *Element[index];
}
return *Element[Count];
}
};
#endif