MFEM  v3.2
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Friends | List of all members
mfem::Array< T > Class Template Reference

#include <array.hpp>

Inheritance diagram for mfem::Array< T >:
[legend]
Collaboration diagram for mfem::Array< T >:
[legend]

Public Member Functions

 Array (int asize=0, int ainc=0)
 Creates array of asize elements. More...
 
 Array (T *_data, int asize, int ainc=0)
 
 ~Array ()
 Destructor. More...
 
 operator T * ()
 Return the data as 'T *'. More...
 
 operator const T * () const
 Return the data as 'const T *'. More...
 
T * GetData ()
 Returns the data. More...
 
const T * GetData () const
 Returns the data. More...
 
bool OwnsData () const
 Return true if the data will be deleted by the array. More...
 
void StealData (T **p)
 Changes the ownership of the data. More...
 
void LoseData ()
 NULL-ifies the data. More...
 
void MakeDataOwner ()
 Make the Array own the data. More...
 
int Size () const
 Logical size of the array. More...
 
void SetSize (int nsize)
 Change logical size of the array, keep existing entries. More...
 
void SetSize (int nsize, const T &initval)
 Same as SetSize(int) plus initialize new entries with 'initval'. More...
 
int Capacity () const
 
void Reserve (int capacity)
 Ensures that the allocated size is at least the given size. More...
 
T & operator[] (int i)
 Access element. More...
 
const T & operator[] (int i) const
 Access const element. More...
 
int Append (const T &el)
 Append element to array, resize if necessary. More...
 
int Append (const Array< T > &els)
 Append another array to this array, resize if necessary. More...
 
int Prepend (const T &el)
 Prepend an element to the array, resize if necessary. More...
 
T & Last ()
 Return the last element in the array. More...
 
const T & Last () const
 
int Union (const T &el)
 Append element when it is not yet in the array, return index. More...
 
int Find (const T &el) const
 Return the first index where 'el' is found; return -1 if not found. More...
 
void DeleteLast ()
 Delete the last entry. More...
 
void DeleteFirst (const T &el)
 Delete the first 'el' entry. More...
 
void DeleteAll ()
 Delete whole array. More...
 
void Copy (Array &copy) const
 Create a copy of the current array. More...
 
void MakeRef (T *, int)
 Make this Array a reference to a pointer. More...
 
void MakeRef (const Array &master)
 Make this Array a reference to 'master'. More...
 
void GetSubArray (int offset, int sa_size, Array< T > &sa)
 
void Print (std::ostream &out=std::cout, int width=4)
 Prints array to stream with width elements per row. More...
 
void Save (std::ostream &out)
 Prints array to stream out. More...
 
Max () const
 
Min () const
 
void Sort ()
 Sorts the array. This requires operator< to be defined for T. More...
 
template<class Compare >
void Sort (Compare cmp)
 Sorts the array using the supplied comparison function object. More...
 
void Unique ()
 
int IsSorted ()
 return true if the array is sorted. More...
 
void PartialSum ()
 Partial Sum. More...
 
Sum ()
 Sum all entries. More...
 
void operator= (const T &a)
 
void Assign (const T *)
 Copy data from a pointer. Size() elements are copied. More...
 
T * begin () const
 
T * end () const
 
long MemoryUsage () const
 

Friends

void Swap (Array< T > &, Array< T > &)
 

Additional Inherited Members

- Protected Member Functions inherited from mfem::BaseArray
 BaseArray ()
 
 BaseArray (int asize, int ainc, int elmentsize)
 Creates array of asize elements of size elementsize. More...
 
 ~BaseArray ()
 Free the allocated memory. More...
 
void GrowSize (int minsize, int elementsize)
 
- Protected Attributes inherited from mfem::BaseArray
void * data
 Pointer to data. More...
 
int size
 Size of the array. More...
 
int allocsize
 Size of the allocated memory. More...
 
int inc
 

Detailed Description

template<class T>
class mfem::Array< T >

Abstract data type Array.

Array<T> is an automatically increasing array containing elements of the generic type T. The allocated size may be larger then the logical size of the array. The elements can be accessed by the [] operator, the range is 0 to size-1.

Definition at line 52 of file array.hpp.

Constructor & Destructor Documentation

template<class T>
mfem::Array< T >::Array ( int  asize = 0,
int  ainc = 0 
)
inlineexplicit

Creates array of asize elements.

Definition at line 72 of file array.hpp.

template<class T>
mfem::Array< T >::Array ( T *  _data,
int  asize,
int  ainc = 0 
)
inline

Creates array using an existing c-array of asize elements; allocsize is set to -asize to indicate that the data will not be deleted.

Definition at line 78 of file array.hpp.

template<class T>
mfem::Array< T >::~Array ( )
inline

Destructor.

Definition at line 82 of file array.hpp.

Member Function Documentation

template<class T>
int mfem::Array< T >::Append ( const T &  el)
inline

Append element to array, resize if necessary.

Definition at line 376 of file array.hpp.

template<class T>
int mfem::Array< T >::Append ( const Array< T > &  els)
inline

Append another array to this array, resize if necessary.

Definition at line 384 of file array.hpp.

template<class T>
void mfem::Array< T >::Assign ( const T *  p)
inline

Copy data from a pointer. Size() elements are copied.

Definition at line 518 of file array.hpp.

template<class T>
T* mfem::Array< T >::begin ( ) const
inline

Definition at line 218 of file array.hpp.

template<class T>
int mfem::Array< T >::Capacity ( ) const
inline

Maximum number of entries the array can store without allocating more memory.

Definition at line 119 of file array.hpp.

template<class T>
void mfem::Array< T >::Copy ( Array< T > &  copy) const
inline

Create a copy of the current array.

Definition at line 160 of file array.hpp.

template<class T >
void mfem::Array< T >::DeleteAll ( )
inline

Delete whole array.

Definition at line 463 of file array.hpp.

template<class T>
void mfem::Array< T >::DeleteFirst ( const T &  el)
inline

Delete the first 'el' entry.

Definition at line 448 of file array.hpp.

template<class T>
void mfem::Array< T >::DeleteLast ( )
inline

Delete the last entry.

Definition at line 151 of file array.hpp.

template<class T>
T* mfem::Array< T >::end ( ) const
inline

Definition at line 219 of file array.hpp.

template<class T>
int mfem::Array< T >::Find ( const T &  el) const
inline

Return the first index where 'el' is found; return -1 if not found.

Definition at line 437 of file array.hpp.

template<class T>
T* mfem::Array< T >::GetData ( )
inline

Returns the data.

Definition at line 91 of file array.hpp.

template<class T>
const T* mfem::Array< T >::GetData ( ) const
inline

Returns the data.

Definition at line 93 of file array.hpp.

template<class T>
void mfem::Array< T >::GetSubArray ( int  offset,
int  sa_size,
Array< T > &  sa 
)
inline

Definition at line 499 of file array.hpp.

template<class T >
int mfem::Array< T >::IsSorted ( )

return true if the array is sorted.

Definition at line 145 of file array.cpp.

template<class T >
T & mfem::Array< T >::Last ( )
inline

Return the last element in the array.

Definition at line 411 of file array.hpp.

template<class T >
const T & mfem::Array< T >::Last ( ) const
inline

Definition at line 418 of file array.hpp.

template<class T>
void mfem::Array< T >::LoseData ( )
inline

NULL-ifies the data.

Definition at line 103 of file array.hpp.

template<class T>
void mfem::Array< T >::MakeDataOwner ( )
inline

Make the Array own the data.

Definition at line 106 of file array.hpp.

template<class T>
void mfem::Array< T >::MakeRef ( T *  p,
int  s 
)
inline

Make this Array a reference to a pointer.

Definition at line 474 of file array.hpp.

template<class T>
void mfem::Array< T >::MakeRef ( const Array< T > &  master)
inline

Make this Array a reference to 'master'.

Definition at line 486 of file array.hpp.

template<class T >
T mfem::Array< T >::Max ( ) const

Finds the maximal element in the array. (uses the comparison operator '<' for class T)

Definition at line 90 of file array.cpp.

template<class T>
long mfem::Array< T >::MemoryUsage ( ) const
inline

Definition at line 221 of file array.hpp.

template<class T >
T mfem::Array< T >::Min ( ) const

Finds the minimal element in the array. (uses the comparison operator '<' for class T)

Definition at line 105 of file array.cpp.

template<class T>
mfem::Array< T >::operator const T * ( ) const
inline

Return the data as 'const T *'.

Definition at line 88 of file array.hpp.

template<class T>
mfem::Array< T >::operator T * ( )
inline

Return the data as 'T *'.

Definition at line 85 of file array.hpp.

template<class T>
void mfem::Array< T >::operator= ( const T &  a)
inline

Definition at line 509 of file array.hpp.

template<class T >
T & mfem::Array< T >::operator[] ( int  i)
inline

Access element.

Definition at line 360 of file array.hpp.

template<class T >
const T & mfem::Array< T >::operator[] ( int  i) const
inline

Access const element.

Definition at line 368 of file array.hpp.

template<class T>
bool mfem::Array< T >::OwnsData ( ) const
inline

Return true if the data will be deleted by the array.

Definition at line 96 of file array.hpp.

template<class T >
void mfem::Array< T >::PartialSum ( )

Partial Sum.

Definition at line 121 of file array.cpp.

template<class T>
int mfem::Array< T >::Prepend ( const T &  el)
inline

Prepend an element to the array, resize if necessary.

Definition at line 398 of file array.hpp.

template<class T >
void mfem::Array< T >::Print ( std::ostream &  out = std::cout,
int  width = 4 
)

Prints array to stream with width elements per row.

Definition at line 63 of file array.cpp.

template<class T>
void mfem::Array< T >::Reserve ( int  capacity)
inline

Ensures that the allocated size is at least the given size.

Definition at line 122 of file array.hpp.

template<class T >
void mfem::Array< T >::Save ( std::ostream &  out)

Prints array to stream out.

Definition at line 80 of file array.cpp.

template<class T >
void mfem::Array< T >::SetSize ( int  nsize)
inline

Change logical size of the array, keep existing entries.

Definition at line 331 of file array.hpp.

template<class T>
void mfem::Array< T >::SetSize ( int  nsize,
const T &  initval 
)
inline

Same as SetSize(int) plus initialize new entries with 'initval'.

Definition at line 342 of file array.hpp.

template<class T>
int mfem::Array< T >::Size ( ) const
inline

Logical size of the array.

Definition at line 109 of file array.hpp.

template<class T>
void mfem::Array< T >::Sort ( )
inline

Sorts the array. This requires operator< to be defined for T.

Definition at line 189 of file array.hpp.

template<class T>
template<class Compare >
void mfem::Array< T >::Sort ( Compare  cmp)
inline

Sorts the array using the supplied comparison function object.

Definition at line 193 of file array.hpp.

template<class T>
void mfem::Array< T >::StealData ( T **  p)
inline

Changes the ownership of the data.

Definition at line 99 of file array.hpp.

template<class T >
T mfem::Array< T >::Sum ( )

Sum all entries.

Definition at line 133 of file array.cpp.

template<class T>
int mfem::Array< T >::Union ( const T &  el)
inline

Append element when it is not yet in the array, return index.

Definition at line 425 of file array.hpp.

template<class T>
void mfem::Array< T >::Unique ( )
inline

Removes duplicities from a sorted array. This requires operator== to be defined for T.

Definition at line 197 of file array.hpp.

Friends And Related Function Documentation

template<class T>
void Swap ( Array< T > &  a,
Array< T > &  b 
)
friend

The documentation for this class was generated from the following files: