OpenFPM_pdata  1.1.0
Project that contain the implementation of distributed structures
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Friends Pages
openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR > Class Template Reference

Detailed Description

template<typename T, typename gp>
class openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >

Definition at line 14 of file map_vector.hpp.

Public Types

typedef int yes_i_am_vector
 it define that it is a vector
 
typedef vector_key_iterator iterator_key
 iterator for the vector
 
typedef T value_type
 Type of the value the vector is storing.
 

Public Member Functions

size_t size () const
 return the size of the vector
 
void resize (size_t slot)
 
void clear ()
 Remove all the element from the vector. More...
 
void add (const T &v)
 It insert a new object on the vector, eventually it reallocate the grid. More...
 
void add (T &&v)
 It insert a new object on the vector, eventually it reallocate the grid. More...
 
void add ()
 Add an empty object (it call the default constructor () ) at the end of the vector. More...
 
void erase (typename std::vector< T >::iterator start, typename std::vector< T >::iterator end)
 Erase the elements from start to end. More...
 
void remove (size_t key)
 Remove one entry from the vector. More...
 
T * begin ()
 Return an std compatible iterator to the first element. More...
 
T * end ()
 Return an std compatible iterator to the past the last element. More...
 
const T * begin () const
 Return an std compatible iterator to the first element. More...
 
const T * end () const
 Return an std compatible iterator to the past the last element. More...
 
T & last ()
 Get the last element. More...
 
const T & last () const
 Get the last element. More...
 
template<unsigned int p>
T & get (size_t id)
 Get an element of the vector. More...
 
void setMemory (PtrMemory &mem)
 
template<unsigned int p>
const T & get (size_t id) const
 Get an element of the vector. More...
 
T & get (size_t id)
 Get an element of the vector. More...
 
const T & get (size_t id) const
 Get an element of the vector. More...
 
void fill (unsigned char fl)
 it fill all the memory of fl patterns More...
 
void reserve (size_t ns)
 reserve a memory space in advance to avoid reallocation More...
 
 vector () noexcept
 Constructor, vector of size 0.
 
 vector (size_t sz) noexcept
 Constructor, vector of size sz.
 
 vector (const vector< T, PtrMemory, layout, layout_base, gp, STD_VECTOR > &v) noexcept
 Constructor from another vector.
 
 vector (vector< T, PtrMemory, layout, layout_base, gp, STD_VECTOR > &&v) noexcept
 Constructor from another vector.
 
 ~vector () noexcept
 destructor
 
void swap (openfpm::vector< T, PtrMemory, layout, layout_base, gp, STD_VECTOR > &v)
 
vector< T, HeapMemory, layout,
layout_base,
grow_policy_double, STD_VECTOR > & 
operator= (const vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &v)
 Operator= copy the vector into another. More...
 
vector< T, HeapMemory, layout,
layout_base,
grow_policy_double, STD_VECTOR > & 
operator= (vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &&v)
 Operator= copy the vector into another. More...
 
bool operator!= (const vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &v) const
 Check that two vectors are equal. More...
 
bool operator== (const vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &v) const
 Check that two vectors are not equal. More...
 
vector_key_iterator getIterator () const
 Get iterator. More...
 
void * getPointer ()
 Return the pointer to the chunk of memory. More...
 
const void * getPointer () const
 Return the pointer to the chunk of memory. More...
 
size_t getLastError ()
 Return the last error. More...
 
void vector_overflow (size_t v1) const
 check that the id does not overflow the buffer More...
 
long int who ()
 

Static Public Member Functions

static bool noPointers ()
 This class has pointer inside. More...
 

Private Types

typedef memory_traits_lin< T >
::type 
layout
 Memory layout.
 
template<typename lb >
using layout_base = memory_traits_lin< lb >
 function for memory layout
 

Private Attributes

size_t v_size
 
PtrMemorymem
 1-D static grid
 
size_t err_code
 Error code.
 

Member Function Documentation

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::add ( const T &  v)
inline

It insert a new object on the vector, eventually it reallocate the grid.

Parameters
velement to add
Warning
It is not thread safe should not be used in multi-thread environment reallocation, work only on cpu

vector_isel<T>::value

Definition at line 89 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::add ( T &&  v)
inline

It insert a new object on the vector, eventually it reallocate the grid.

Parameters
velement to add
Warning
It is not thread safe should not be used in multi-thread environment reallocation, work only on cpu

vector_isel<T>::value

Definition at line 106 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::add ( )
inline

Add an empty object (it call the default constructor () ) at the end of the vector.

Definition at line 118 of file map_vector.hpp.

template<typename T , typename gp >
T* openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::begin ( )
inline

Return an std compatible iterator to the first element.

Returns
an iterator to the first element

Definition at line 164 of file map_vector.hpp.

template<typename T , typename gp >
const T* openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::begin ( ) const
inline

Return an std compatible iterator to the first element.

Returns
an iterator to the first element

Definition at line 184 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::clear ( )
inline

Remove all the element from the vector.

Definition at line 72 of file map_vector.hpp.

template<typename T , typename gp >
T* openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::end ( )
inline

Return an std compatible iterator to the past the last element.

Returns
an iterator to the last element

Definition at line 174 of file map_vector.hpp.

template<typename T , typename gp >
const T* openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::end ( ) const
inline

Return an std compatible iterator to the past the last element.

Returns
an iterator to the last element

Definition at line 194 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::erase ( typename std::vector< T >::iterator  start,
typename std::vector< T >::iterator  end 
)
inline

Erase the elements from start to end.

Parameters
startelement
endelement

Definition at line 135 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::fill ( unsigned char  fl)
inline

it fill all the memory of fl patterns

WARNING does not assign a value to each element but it fill the memory Useful to fast set the memory to zero

Parameters
flbyte to fill

Definition at line 332 of file map_vector.hpp.

template<typename T , typename gp >
template<unsigned int p>
T& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::get ( size_t  id)
inline

Get an element of the vector.

Template Parameters
pmust be 0
Parameters
idelement to get
Returns
the reference to the element

Definition at line 242 of file map_vector.hpp.

template<typename T , typename gp >
template<unsigned int p>
const T& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::get ( size_t  id) const
inline

Get an element of the vector.

Template Parameters
pmust be 0
Parameters
idelement to get
Returns
the reference to the element

Definition at line 271 of file map_vector.hpp.

template<typename T , typename gp >
T& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::get ( size_t  id)
inline

Get an element of the vector.

Parameters
idelement to get
Returns
the element reference

Definition at line 293 of file map_vector.hpp.

template<typename T , typename gp >
const T& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::get ( size_t  id) const
inline

Get an element of the vector.

Parameters
idelement to get
Returns
the element value

Definition at line 312 of file map_vector.hpp.

template<typename T , typename gp >
vector_key_iterator openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::getIterator ( ) const
inline

Get iterator.

Returns
an iterator

Definition at line 480 of file map_vector.hpp.

template<typename T , typename gp >
size_t openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::getLastError ( )
inline

Return the last error.

Returns
the last error

Definition at line 527 of file map_vector.hpp.

template<typename T , typename gp >
void* openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::getPointer ( )
inline

Return the pointer to the chunk of memory.

Returns
the pointer to the chunk of memory

Definition at line 494 of file map_vector.hpp.

template<typename T , typename gp >
const void* openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::getPointer ( ) const
inline

Return the pointer to the chunk of memory.

Returns
the pointer to the chunk of memory

Definition at line 507 of file map_vector.hpp.

template<typename T , typename gp >
T& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::last ( )
inline

Get the last element.

Returns
the last element as reference

Definition at line 204 of file map_vector.hpp.

template<typename T , typename gp >
const T& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::last ( ) const
inline

Get the last element.

Returns
the last element as reference

Definition at line 221 of file map_vector.hpp.

template<typename T , typename gp >
static bool openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::noPointers ( )
inlinestatic

This class has pointer inside.

Returns
false

Definition at line 517 of file map_vector.hpp.

template<typename T , typename gp >
bool openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::operator!= ( const vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &  v) const
inline

Check that two vectors are equal.

Parameters
vectorto compare
Returns
true if the two vector match

Definition at line 454 of file map_vector.hpp.

template<typename T , typename gp >
vector<T,HeapMemory,layout,layout_base,grow_policy_double,STD_VECTOR>& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::operator= ( const vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &  v)
inline

Operator= copy the vector into another.

Returns
itself

Definition at line 420 of file map_vector.hpp.

template<typename T , typename gp >
vector<T,HeapMemory,layout,layout_base,grow_policy_double,STD_VECTOR>& openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::operator= ( vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &&  v)
inline

Operator= copy the vector into another.

Parameters
vvector to copy
Returns
itself

Definition at line 437 of file map_vector.hpp.

template<typename T , typename gp >
bool openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::operator== ( const vector< T, HeapMemory, layout, layout_base, grow_policy_double, STD_VECTOR > &  v) const
inline

Check that two vectors are not equal.

Parameters
vectorto compare
Returns
true if the vector match

Definition at line 468 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::remove ( size_t  key)
inline

Remove one entry from the vector.

Parameters
keyelement to remove

Definition at line 148 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::reserve ( size_t  ns)
inline

reserve a memory space in advance to avoid reallocation

Parameters
nsnumber of element the memory has to store

Definition at line 346 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::resize ( size_t  slot)
inline

\ brief Resize the vector to contain n elements

Parameters
slotnumber of elements

Definition at line 58 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::swap ( openfpm::vector< T, PtrMemory, layout, layout_base, gp, STD_VECTOR > &  v)
inline

swap the content of the vector

Parameters
vvector to be swapped with

Definition at line 407 of file map_vector.hpp.

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::vector_overflow ( size_t  v1) const
inline

check that the id does not overflow the buffer

Parameters
v1to check

Definition at line 540 of file map_vector.hpp.

Field Documentation

template<typename T , typename gp >
size_t openfpm::vector< T, PtrMemory, typename memory_traits_lin< T >::type, memory_traits_lin, gp, STD_VECTOR >::v_size
private

Actual size of the vector, warning: it is not the space allocated in grid grid size increase by a fixed amount every time we need a vector bigger than the actually allocated space

Definition at line 25 of file map_vector.hpp.


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