ContenerTableau< T > Class Template Reference

#include <contener_array.h>

Inheritance diagram for ContenerTableau< T >:

Inheritance graph
[legend]
Collaboration diagram for ContenerTableau< T >:

Collaboration graph
[legend]
List of all members.

Public Member Functions

void Ajouter (T &el)
 add a particular item
 ContenerTableau ()
void Empty ()
 function that clear the contener
T & Get (unsigned int index)
 get an item from its index
IteratorTableau< T > & GetIterator ()
 return an associated iterator
unsigned int nbElem ()
 return the number of contained items
int Recherche (T &el)
 search for a given item
void Retirer (int index)
 remove an item from its index
void Tri ()
 sort items
 ~ContenerTableau ()

Protected Member Functions

void Resize (int taille)
 resize the array

Protected Attributes

NULL_ELEM
 pointer to unique undefined item
std::vector< T * > tableau
 internal array

Friends

class IteratorTableau< T >
 iterator needs a privileged access

Detailed Description

template<class T>
class ContenerTableau< T >

Class ContenerTableau<T> array implementation of a generic contener

Definition at line 57 of file contener_array.h.


Constructor & Destructor Documentation

template<class T>
ContenerTableau< T >::ContenerTableau (  )  [inline]

Definition at line 62 of file contener_array.h.

00062                    : 
00063     Contener<T,Iterator<T,IteratorTableau<T> > >()
00064     {
00065       //      NULL_ELEM = NULL;
00066       tableau.reserve(MIN_SIZE);
00067       memset(&tableau[0],0,sizeof(T*)*MIN_SIZE);
00068     };

template<class T>
ContenerTableau< T >::~ContenerTableau (  )  [inline]

Definition at line 71 of file contener_array.h.

00071                     {
00072     Empty();
00073   };


Member Function Documentation

template<class T>
void ContenerTableau< T >::Ajouter ( T &  el  )  [inline, virtual]

add a particular item

Implements Contener< T, Iterator< T, IteratorTableau< T > > >.

Definition at line 136 of file contener_array.h.

References ContenerTableau< T >::Resize(), and ContenerTableau< T >::tableau.

Referenced by Bridging< DomainA, DomainC, Dim, Pond >::BuildAtomsWeight(), Bridging< DomainA, DomainC, Dim, Pond >::BuildContinuWeight(), Bridging< DomainA, DomainC, Dim, Pond >::filterContener(), Bridging< DomainA, DomainC, Dim, Pond >::filterContenerElemsAndNodes(), and BridgingPar< DomainA, DomainC, Dim, Pond >::UnfragmentContener().

00136                                                {
00137   /*  if (taille >= taille_max)
00138       Resize(taille*2);*/
00139   if (tableau.capacity() == tableau.size()) Resize(tableau.size()*2);
00140   T * temp = new T(el);
00141   tableau.push_back(temp);
00142 
00143 
00144   //  tableau[taille] = new T(el);
00145   //taille ++;
00146 }

Here is the call graph for this function:

template<class T>
void ContenerTableau< T >::Empty (  )  [inline]

function that clear the contener

Definition at line 114 of file contener_array.h.

References ContenerTableau< T >::nbElem(), and ContenerTableau< T >::tableau.

Referenced by Bridging< DomainA, DomainC, Dim, Pond >::filterContener(), Bridging< DomainA, DomainC, Dim, Pond >::filterContenerElemsAndNodes(), BridgingPar< DomainA, DomainC, Dim, Pond >::UnfragmentContener(), and ContenerTableau< RefElt >::~ContenerTableau().

00114                                      {
00115 
00116   for (unsigned int i=0; i < nbElem() ;++i)
00117     delete tableau[i];
00118 
00119   tableau.clear();
00120   /*    taille = 0;*/
00121 }

Here is the call graph for this function:

template<class T>
T & ContenerTableau< T >::Get ( unsigned int  index  )  [inline, virtual]

get an item from its index

Implements Contener< T, Iterator< T, IteratorTableau< T > > >.

Definition at line 149 of file contener_array.h.

References FATAL, ContenerTableau< T >::nbElem(), and ContenerTableau< T >::tableau.

Referenced by MyMethodFull< DomainA, DomainC, Dim >::ApplyCorrection(), BelytschkoFull< DomainA, DomainC, Dim >::ApplyCorrection(), LeastSquare< DomainA, DomainC, Dim >::BuildAtomsRHS(), MyMethodFull< DomainA, DomainC, Dim >::BuildConstraintMatrix(), BelytschkoFull< DomainA, DomainC, Dim >::BuildConstraintMatrix(), Bridging< DomainA, DomainC, Dim, Pond >::BuildFictifsPositions(), Bridging< DomainA, DomainC, Dim, Pond >::BuildPositions(), MyMethodFull< DomainA, DomainC, Dim >::BuildRHS(), Bridging< DomainA, DomainC, Dim, Pond >::BuildShapeMatrix(), Bridging< DomainA, DomainC, Dim, Pond >::BuildShapeMatrixFictifs(), Bridging< DomainA, DomainC, Dim, Pond >::DumpDistance(), Bridging< DomainA, DomainC, Dim, Pond >::filterContener(), Bridging< DomainA, DomainC, Dim, Pond >::filterContenerElemsAndNodes(), and BridgingPar< DomainA, DomainC, Dim, Pond >::UnfragmentContener().

00149                                                      {
00150   if (index >= 0 && index < nbElem())
00151     return *tableau[index];
00152   else
00153     FATAL("out of range access");
00154   //return NULL_ELEM;
00155 }

Here is the call graph for this function:

template<class T>
IteratorTableau< T > & ContenerTableau< T >::GetIterator (  )  [inline, virtual]

return an associated iterator

Implements Contener< T, Iterator< T, IteratorTableau< T > > >.

Definition at line 169 of file contener_array.h.

Referenced by FormeFaible< DomainA, DomainC, Dim >::ApplyAtomsCorrection(), FormeFaible< DomainA, DomainC, Dim >::BuildAtomsRHS(), Bridging< DomainA, DomainC, Dim, Pond >::BuildAtomsWeight(), BelytschkoFull< DomainA, DomainC, Dim >::BuildConstraintMatrix(), FormeFaible< DomainA, DomainC, Dim >::BuildContinuConstraintMatrix(), LeastSquare< DomainA, DomainC, Dim >::BuildLeastSquareRHS(), Bridging< DomainA, DomainC, Dim, Pond >::BuildShapeMatrix(), Bridging< DomainA, DomainC, Dim, Pond >::BuildShapeMatrixFictifs(), BridgingPar< DomainA, DomainC, Dim, Pond >::CorrectSurfaceEffect(), Bridging< DomainA, DomainC, Dim, Pond >::CorrectSurfaceEffect(), FormeFaible< DomainA, DomainC, Dim >::CorrectWeights(), BelytschkoFull< DomainA, DomainC, Dim >::CorrectWeights(), LeastSquare< DomainA, DomainC, Dim >::CorrigeAtoms(), and Bridging< DomainA, DomainC, Dim, Pond >::Dump().

00169                                                     {
00170   return *(new IteratorTableau<T>(*this));
00171 }

template<class T>
unsigned int ContenerTableau< T >::nbElem (  )  [inline, virtual]

return the number of contained items

Implements Contener< T, Iterator< T, IteratorTableau< T > > >.

Definition at line 109 of file contener_array.h.

References ContenerTableau< T >::tableau.

Referenced by MyMethodFull< DomainA, DomainC, Dim >::ApplyCorrection(), LeastSquare< DomainA, DomainC, Dim >::BuildAtomsRHS(), Bridging< DomainA, DomainC, Dim, Pond >::BuildAtomsWeight(), MyMethodFull< DomainA, DomainC, Dim >::BuildConstraintMatrix(), Bridging< DomainA, DomainC, Dim, Pond >::BuildContinuWeight(), Bridging< DomainA, DomainC, Dim, Pond >::BuildFictifsPositions(), Bridging< DomainA, DomainC, Dim, Pond >::BuildPositions(), MyMethodFull< DomainA, DomainC, Dim >::BuildRHS(), Bridging< DomainA, DomainC, Dim, Pond >::BuildShapeMatrix(), Bridging< DomainA, DomainC, Dim, Pond >::BuildShapeMatrixFictifs(), ContenerTableauRefAtome< RefAtom >::compute_global_size(), Bridging< DomainA, DomainC, Dim, Pond >::CorrectSurfaceEffect(), FormeFaible< DomainA, DomainC, Dim >::CorrectWeights(), BelytschkoFull< DomainA, DomainC, Dim >::CorrectWeights(), Bridging< DomainA, DomainC, Dim, Pond >::Dump(), Bridging< DomainA, DomainC, Dim, Pond >::DumpDistance(), ContenerTableau< T >::Empty(), Bridging< DomainA, DomainC, Dim, Pond >::filterContener(), Bridging< DomainA, DomainC, Dim, Pond >::filterContenerElemsAndNodes(), BridgingPar< DomainA, DomainC, Dim, Pond >::GenerateCommunicationScheme(), ContenerTableau< T >::Get(), MyMethodFull< DomainA, DomainC, Dim >::Init(), LeastSquare< DomainA, DomainC, Dim >::Init(), BelytschkoFull< DomainA, DomainC, Dim >::Init(), Belytschko< DomainA, DomainC, Dim >::Init(), IteratorTableau< RefElt >::IteratorTableau(), FiltreAtom< Domain, Dim >::nbDofs(), FiltreMesh< Domain, Dim >::nbElems(), FiltreMesh< Domain, Dim >::nbNodes(), ContenerTableau< T >::Recherche(), MyMethodFull< DomainA, DomainC, Dim >::SolveConstraint(), BelytschkoPar< DomainA, DomainC, Dim >::Stucking(), Belytschko< DomainA, DomainC, Dim >::Stucking(), and BridgingPar< DomainA, DomainC, Dim, Pond >::UnfragmentContener().

00109                                               {
00110   return tableau.size();
00111 }

template<class T>
int ContenerTableau< T >::Recherche ( T &  el  )  [inline, virtual]

search for a given item

Implements Contener< T, Iterator< T, IteratorTableau< T > > >.

Definition at line 158 of file contener_array.h.

References ContenerTableau< T >::nbElem(), and ContenerTableau< T >::tableau.

Referenced by FiltreMesh< Domain, Dim >::LocalIndexes().

00158                                        {
00159   for (unsigned int i = 0 ; i < nbElem() ; ++i)
00160     {
00161       T * e = tableau[i];
00162       if (el == *e)
00163         return i;
00164     }
00165   return -1;
00166 }

Here is the call graph for this function:

template<class T>
void ContenerTableau< T >::Resize ( int  taille  )  [inline, protected]

resize the array

Definition at line 124 of file contener_array.h.

References ContenerTableau< T >::tableau.

Referenced by ContenerTableau< T >::Ajouter().

00124                                            {
00125   /*  T ** temp = new T*[t];
00126   memcpy(temp,tableau,taille_max*sizeof(T*));
00127   for (int i = 0; i < taille_max ; ++i)
00128     temp[i] = tableau[i];
00129   delete [] tableau;
00130   tableau = temp;
00131   taille_max = t;*/
00132   tableau.reserve(t);
00133 }

template<class T>
void ContenerTableau< T >::Retirer ( int  index  )  [inline, virtual]

remove an item from its index

Implements Contener< T, Iterator< T, IteratorTableau< T > > >.

Definition at line 182 of file contener_array.h.

00182                                          {
00183   ++index;
00184   //TODO
00185 }

template<class T>
void ContenerTableau< T >::Tri (  )  [inline, virtual]

sort items

Implements Contener< T, Iterator< T, IteratorTableau< T > > >.

Definition at line 174 of file contener_array.h.

00174                             {
00175   //TODO
00176   }


Friends And Related Function Documentation

template<class T>
friend class IteratorTableau< T > [friend]

iterator needs a privileged access

Definition at line 99 of file contener_array.h.


Member Data Documentation

template<class T>
T ContenerTableau< T >::NULL_ELEM [protected]

pointer to unique undefined item

Definition at line 105 of file contener_array.h.

template<class T>
std::vector<T*> ContenerTableau< T >::tableau [protected]

internal array

Definition at line 101 of file contener_array.h.

Referenced by ContenerTableau< T >::Ajouter(), ContenerTableau< RefElt >::ContenerTableau(), ContenerTableau< T >::Empty(), ContenerTableau< T >::Get(), ContenerTableau< T >::nbElem(), ContenerTableau< T >::Recherche(), and ContenerTableau< T >::Resize().


The documentation for this class was generated from the following file:
Generated on Fri Sep 7 13:13:09 2007 for LibMultiScale by  doxygen 1.5.2