Page principale | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

Référence de la classe Array< T > (modèle)

Tableaux dynamique. Plus de détails...

#include <Array.h>

Liste de tous les membres

Fonctions membres publiques

 Array (unsigned int iMaxSize=ARRAY_DEF_MAX, unsigned int iAllocSize=ARRAY_DEF_ALLOC, unsigned int iDeallocSize=ARRAY_DEF_DEALLOC)
 ~Array ()
unsigned int push_back (T pData)
 Ajoute un élément.
unsigned int push (T pData, long int iPos)
 Insert un élément.
unsigned int erase (long int iPos)
 Supprime un élément.
void clear ()
 Vide le tableau.
front ()
 Retourne le premier élément.
back ()
 Retourne le dernier élément.
operator[] (unsigned int iPos)
 Retourne un élément.
unsigned int size ()
 Retourne le nombre d'élément.
unsigned int capacity ()
 Retourne la taille allouée.
unsigned int allocSize ()
 Retourne la taille d'un block d'allocation.
unsigned int deallocSize ()
 Retourne la taille d'un block de désallocation.
unsigned int max_size ()
 Retourne la taille max du tableau.


Description détaillée

template<class T>
class Array< T >

Tableaux dynamique à allocation par block (plus robuste que vector).

Définition à la ligne 24 du fichier Array.h.


Documentation des contructeurs et destructeur

template<class T>
Array< T >::Array unsigned int  iMaxSize = ARRAY_DEF_MAX,
unsigned int  iAllocSize = ARRAY_DEF_ALLOC,
unsigned int  iDeallocSize = ARRAY_DEF_DEALLOC
[inline]
 

Initialise avec des paramètres par défauts.

Paramètres:
iMaxSize taille max du tableau
iAllocSize taille d'un block d'allocation
iDeallocSize taille d'un block de désallocation

Définition à la ligne 42 du fichier Array.h.

00043     {
00044         allocBlockSize      = iAllocSize;
00045         deallocBlockSize    = iDeallocSize;
00046         maxSize             = iMaxSize;
00047         tab                 = NULL;
00048         allocatedSize       = 0;
00049         nbDatas             = 0;
00050         begin               = 0;
00051         end                 = -1;
00052     };

template<class T>
Array< T >::~Array  )  [inline]
 

Libere proprement la mémoire.

Définition à la ligne 56 du fichier Array.h.

00057     {
00058         if(tab)
00059             free(tab);
00060     };


Documentation des fonctions membres

template<class T>
unsigned int Array< T >::allocSize  )  [inline]
 

Retourne la taille d'un block d'allocation allocBlockSize.

Renvoie:
taille d'un block d'allocation allocBlockSize

Définition à la ligne 217 du fichier Array.h.

00218     {
00219         return allocBlockSize;
00220     };

template<class T>
T Array< T >::back  )  [inline]
 

Retourne le dernier élément du tableau.

Renvoie:
pointeur sur le dernier élément

Définition à la ligne 174 du fichier Array.h.

00175     {
00176         if(nbDatas)
00177             return tab[end];
00178 
00179         return NULL;
00180     };

template<class T>
unsigned int Array< T >::capacity  )  [inline]
 

Retourne la taille allouée du tableau allocatedSize.

Renvoie:
taille allouée du tableau allocatedSize

Définition à la ligne 208 du fichier Array.h.

00209     {
00210         return allocatedSize;
00211     };

template<class T>
void Array< T >::clear  )  [inline]
 

Vide tout le tableau.

Définition à la ligne 151 du fichier Array.h.

00152     {
00153         begin           = 0;
00154         end             = -1;
00155         nbDatas         = 0;
00156     };

template<class T>
unsigned int Array< T >::deallocSize  )  [inline]
 

Retourne la taille d'un block de désallocation deallocBlockSize.

Renvoie:
taille d'un block de désallocation deallocBlockSize

Définition à la ligne 226 du fichier Array.h.

00227     {
00228         return deallocBlockSize;
00229     };

template<class T>
unsigned int Array< T >::erase long int  iPos  )  [inline]
 

Supprime l'élément à la position iPos .

Paramètres:
iPos position de l'élément
Renvoie:
code d'erreur

Définition à la ligne 123 du fichier Array.h.

00124     {
00125         long int    i, j;
00126 
00127         if(iPos > (long int)nbDatas)
00128             return 1;
00129 
00130         for(i = iPos; i < end; i++)
00131             tab[i] = tab[i + 1];
00132         tab[i] = NULL;
00133         end--;
00134         nbDatas--;
00135 
00136         if(begin > deallocBlockSize)
00137         {
00138             for(i = begin, j = 0; i <= end; i++, j++)
00139                 tab[j] = tab[i];
00140 
00141             begin = 0;
00142             end = nbDatas - 1;
00143         }
00144 
00145         return 0;
00146     };

template<class T>
T Array< T >::front  )  [inline]
 

Retourne le premier élément du tableau.

Renvoie:
pointeur sur le premier élément

Définition à la ligne 162 du fichier Array.h.

00163     {
00164         if(nbDatas)
00165             return tab[begin];
00166 
00167         return NULL;
00168     };

template<class T>
unsigned int Array< T >::max_size  )  [inline]
 

Retourne la taille max du tableau maxSize.

Renvoie:
taille max du tableau maxSize

Définition à la ligne 235 du fichier Array.h.

00236     {
00237         return maxSize;
00238     };

template<class T>
T Array< T >::operator[] unsigned int  iPos  )  [inline]
 

Retourne l'élément à la position iPos .

Paramètres:
iPos position de l'élément
Renvoie:
pointeur sur l'élément

Définition à la ligne 187 du fichier Array.h.

00188     {
00189         if(iPos < nbDatas)
00190             return tab[begin + iPos];
00191 
00192         return NULL;
00193     };

template<class T>
unsigned int Array< T >::push pData,
long int  iPos
[inline]
 

Insert un élément.

Paramètres:
pData donnée à ajouter
iPos position de l'élément
Renvoie:
code d'erreur

Définition à la ligne 91 du fichier Array.h.

00092     {
00093         unsigned int    i;
00094 
00095         if(iPos > (long int)nbDatas)
00096             return 1;
00097 
00098         if((unsigned int)(end + 1) >= allocatedSize)
00099         {
00100             if(allocatedSize > maxSize)
00101                 return 1;
00102 
00103             allocatedSize += allocBlockSize;
00104             tab = (T *)realloc(tab, sizeof(T) * allocatedSize);
00105         }
00106 
00107         end++;
00108 
00109         for(i = iPos; i <= end; i++)
00110             tab[i + 1] = tab[i];
00111         tab[iPos] = pData;
00112 
00113         nbDatas++;
00114 
00115         return 0;
00116     };

template<class T>
unsigned int Array< T >::push_back pData  )  [inline]
 

Ajoute un élément à la fin du tableau.

Paramètres:
pData donnée à ajouter
Renvoie:
code d'erreur

Définition à la ligne 67 du fichier Array.h.

00068     {
00069         if((unsigned int)(end + 1) >= allocatedSize)
00070         {
00071             if(allocatedSize > maxSize)
00072                 return 1;
00073 
00074             allocatedSize += allocBlockSize;
00075             tab = (T *)realloc(tab, sizeof(T) * allocatedSize);
00076         }
00077 
00078         end++;
00079         tab[end] = pData;
00080         nbDatas++;
00081 
00082         return 0;
00083     };

template<class T>
unsigned int Array< T >::size  )  [inline]
 

Retourne le nombre d'élément du tableau size.

Renvoie:
nombre d'élément size.

Définition à la ligne 199 du fichier Array.h.

00200     {
00201         return nbDatas;
00202     };


La documentation de cette classe a été générée à partir du fichier suivant:
Généré le Thu Jun 12 09:12:30 2008 pour A.I.F. par  doxygen 1.3.9.1