OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
openfpm::vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR > Class Template Reference

Detailed Description

template<typename T, typename gp>
class openfpm::vector< T, PtrMemory, 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_base, gp, STD_VECTOR > &v) noexcept
 Constructor from another vector.
 
 vector (vector< T, PtrMemory, layout_base, gp, STD_VECTOR > &&v) noexcept
 Constructor from another vector.
 
 ~vector () noexcept
 destructor
 
void swap (openfpm::vector< T, PtrMemory, layout_base, gp, STD_VECTOR > &v)
 
vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > & operator= (const vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > &v)
 Operator= copy the vector into another. More...
 
vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > & operator= (vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > &&v)
 Operator= copy the vector into another. More...
 
bool operator!= (const vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > &v) const
 Check that two vectors are equal. More...
 
bool operator== (const vector< T, HeapMemory, 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...
 

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

◆ add() [1/3]

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 80 of file map_vector.hpp.

◆ add() [2/3]

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 94 of file map_vector.hpp.

◆ add() [3/3]

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 103 of file map_vector.hpp.

◆ begin() [1/2]

template<typename T , typename gp >
T* openfpm::vector< T, PtrMemory, 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 140 of file map_vector.hpp.

◆ begin() [2/2]

template<typename T , typename gp >
const T* openfpm::vector< T, PtrMemory, 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 160 of file map_vector.hpp.

◆ clear()

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

Remove all the element from the vector.

Definition at line 66 of file map_vector.hpp.

◆ end() [1/2]

template<typename T , typename gp >
T* openfpm::vector< T, PtrMemory, 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 150 of file map_vector.hpp.

◆ end() [2/2]

template<typename T , typename gp >
const T* openfpm::vector< T, PtrMemory, 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 170 of file map_vector.hpp.

◆ erase()

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 117 of file map_vector.hpp.

◆ fill()

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 290 of file map_vector.hpp.

◆ get() [1/4]

template<typename T , typename gp >
template<unsigned int p>
T& openfpm::vector< T, PtrMemory, 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 212 of file map_vector.hpp.

◆ get() [2/4]

template<typename T , typename gp >
template<unsigned int p>
const T& openfpm::vector< T, PtrMemory, 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 238 of file map_vector.hpp.

◆ get() [3/4]

template<typename T , typename gp >
T& openfpm::vector< T, PtrMemory, 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 257 of file map_vector.hpp.

◆ get() [4/4]

template<typename T , typename gp >
const T& openfpm::vector< T, PtrMemory, 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 273 of file map_vector.hpp.

◆ getIterator()

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

Get iterator.

Returns
an iterator

Definition at line 406 of file map_vector.hpp.

◆ getLastError()

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

Return the last error.

Returns
the last error

Definition at line 469 of file map_vector.hpp.

◆ getPointer() [1/2]

template<typename T , typename gp >
void* openfpm::vector< T, PtrMemory, 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 439 of file map_vector.hpp.

◆ getPointer() [2/2]

template<typename T , typename gp >
const void* openfpm::vector< T, PtrMemory, 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 449 of file map_vector.hpp.

◆ last() [1/2]

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

Get the last element.

Returns
the last element as reference

Definition at line 180 of file map_vector.hpp.

◆ last() [2/2]

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

Get the last element.

Returns
the last element as reference

Definition at line 194 of file map_vector.hpp.

◆ noPointers()

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

This class has pointer inside.

Returns
false

Definition at line 459 of file map_vector.hpp.

◆ operator!=()

template<typename T , typename gp >
bool openfpm::vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::operator!= ( const vector< T, HeapMemory, 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 380 of file map_vector.hpp.

◆ operator=() [1/2]

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

Operator= copy the vector into another.

Returns
itself

Definition at line 352 of file map_vector.hpp.

◆ operator=() [2/2]

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

Operator= copy the vector into another.

Parameters
vvector to copy
Returns
itself

Definition at line 366 of file map_vector.hpp.

◆ operator==()

template<typename T , typename gp >
bool openfpm::vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::operator== ( const vector< T, HeapMemory, 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 394 of file map_vector.hpp.

◆ remove()

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

Remove one entry from the vector.

Parameters
keyelement to remove

Definition at line 127 of file map_vector.hpp.

◆ reserve()

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 301 of file map_vector.hpp.

◆ resize()

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 55 of file map_vector.hpp.

◆ swap()

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

swap the content of the vector

Parameters
vvector to be swapped with

Definition at line 342 of file map_vector.hpp.

◆ vector_overflow()

template<typename T , typename gp >
void openfpm::vector< T, PtrMemory, 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 479 of file map_vector.hpp.

Field Documentation

◆ v_size

template<typename T , typename gp >
size_t openfpm::vector< T, PtrMemory, 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: