GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
GmSingleVector< T > Class Template Reference

A class with the same API as GmDualVector storing a single vector. No query "if" overhead. Ideal for static meshes. More...

#include <gmSingleVector.h>

Public Types

typedef T DataType
 The stored data type.
 
typedef T * iterator
 

Public Member Functions

 GmSingleVector ()
 Default constructor.
 
 GmSingleVector (size_t nvalues)
 The constructor initializing the vector with the given size. The vector contents is NOT initialized.
 
bool isDual () const
 Returns false, since this is NOT a Dual vector.
 
size_t size () const
 Returns the vector size.
 
const T * iptr (size_t index) const
 Returns a pointer to the index data inside the vector.
 
T * iptr (size_t index)
 Non-const overload for iptr()
 
const T & operator[] (size_t index) const
 Standard indexing operator.
 
T & operator[] (size_t index)
 Non-const overload for the standard indexing operator.
 
iterator begin ()
 
iterator end ()
 
bool addValues (size_t numAddedValues, bool tight=false)
 Adds numAddedValues to the set, without any initialization. Returns true on success, false on error. On errors previous values are kept. If the vector is empty, the allocated size will be adjusted to exactly the given size. Otherwise, a growing factor of half of the previous size will be used, unless that is insufficient. If tight is set to true, the allocated size will always match the needed size (unless already allocated).
 
void restoreSize (size_t oldNumValues)
 Restores the size of the set to the previous size before the last call to addValues(). Can be called with the current size if addValues was not called.
 
void removeValues (size_t index, size_t numValues)
 Removes numValues from the set, starting from (and including) index.
 
void clear ()
 Clears all stored data returning the object to a default constructed state.
 
void zero (size_t index=0)
 Clears the vector area by setting to zero all entries starting at the given index.
 
size_t usedMemory () const
 Returns an estimative of the memory used by the data set in bytes.
 
int numDumpBuffers () const
 Returns the number of internal buffers used by this implementation.
 
char * dumpBuffer (int i) const
 Returns the i'th internal buffer, i from 0 to numDumpBuffers()-1.
 
size_t dumpBufferSize (int i) const
 Returns the size in bytes of the i'th internal buffer returned by dumpBuffer(i)
 

Private Member Functions

 Q_DISABLE_COPY (GmSingleVector)
 

Private Attributes

GmPODVector< T > _v
 The real vector.
 

Detailed Description

template<class T>
class GmSingleVector< T >

A class with the same API as GmDualVector storing a single vector. No query "if" overhead. Ideal for static meshes.

Accepts only POD types. In fact, its implementation is mostly a wrapper calling GmPODVector methods, adapting its interface to the GmDualVector interface. The compiler should be able to inline all the calls with no overhead!

Member Function Documentation

◆ usedMemory()

template<class T >
size_t GmSingleVector< T >::usedMemory ( ) const
inline

Returns an estimative of the memory used by the data set in bytes.

  It returns in general the variable memory that depends on the number of set
  entries but does not include constant overheads used by the class for control

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