OpenFPM_pdata  4.1.0
Project that contain the implementation of distributed structures
 
Loading...
Searching...
No Matches
vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR > Class Template Reference

Detailed Description

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

Definition at line 13 of file map_vector_std_ptr.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.
 
void add (const T &v)
 It insert a new object on the vector, eventually it reallocate the grid.
 
void add (T &&v)
 It insert a new object on the vector, eventually it reallocate the grid.
 
void add ()
 Add an empty object (it call the default constructor () ) at the end of the vector.
 
void erase (typename std::vector< T >::iterator start, typename std::vector< T >::iterator end)
 Erase the elements from start to end.
 
void remove (size_t key)
 Remove one entry from the vector.
 
T * begin ()
 Return an std compatible iterator to the first element.
 
T * end ()
 Return an std compatible iterator to the past the last element.
 
const T * begin () const
 Return an std compatible iterator to the first element.
 
const T * end () const
 Return an std compatible iterator to the past the last element.
 
T & last ()
 Get the last element.
 
const T & last () const
 Get the last element.
 
template<unsigned int p>
T & get (size_t id)
 Get an element of the vector.
 
void setMemory (PtrMemory &mem)
 
template<unsigned int p>
const T & get (size_t id) const
 Get an element of the vector.
 
T & get (size_t id)
 Get an element of the vector.
 
const T & get (size_t id) const
 Get an element of the vector.
 
void fill (unsigned char fl)
 it fill all the memory of fl patterns
 
void reserve (size_t ns)
 reserve a memory space in advance to avoid reallocation
 
 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.
 
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.
 
bool operator!= (const vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > &v) const
 Check that two vectors are equal.
 
bool operator== (const vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > &v) const
 Check that two vectors are not equal.
 
vector_key_iterator getIterator () const
 Get iterator.
 
void * getPointer ()
 Return the pointer to the chunk of memory.
 
const void * getPointer () const
 Return the pointer to the chunk of memory.
 
size_t getLastError ()
 Return the last error.
 
void vector_overflow (size_t v1) const
 check that the id does not overflow the buffer
 

Static Public Member Functions

static bool noPointers ()
 This class has pointer inside.
 

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 Typedef Documentation

◆ iterator_key

template<typename T , typename gp >
typedef vector_key_iterator vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::iterator_key

iterator for the vector

Definition at line 38 of file map_vector_std_ptr.hpp.

◆ layout

template<typename T , typename gp >
typedef memory_traits_lin<T>::type vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::layout
private

Memory layout.

Definition at line 16 of file map_vector_std_ptr.hpp.

◆ layout_base

template<typename T , typename gp >
template<typename lb >
using vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::layout_base = memory_traits_lin<lb>
private

function for memory layout

Definition at line 19 of file map_vector_std_ptr.hpp.

◆ value_type

template<typename T , typename gp >
typedef T vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::value_type

Type of the value the vector is storing.

Definition at line 40 of file map_vector_std_ptr.hpp.

◆ yes_i_am_vector

template<typename T , typename gp >
typedef int vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::yes_i_am_vector

it define that it is a vector

Definition at line 35 of file map_vector_std_ptr.hpp.

Constructor & Destructor Documentation

◆ vector() [1/4]

template<typename T , typename gp >
vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::vector ( )
inlinenoexcept

Constructor, vector of size 0.

Definition at line 305 of file map_vector_std_ptr.hpp.

◆ vector() [2/4]

template<typename T , typename gp >
vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::vector ( size_t  sz)
inlinenoexcept

Constructor, vector of size sz.

Definition at line 311 of file map_vector_std_ptr.hpp.

◆ vector() [3/4]

template<typename T , typename gp >
vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::vector ( const vector< T, PtrMemory, layout_base, gp, STD_VECTOR > &  v)
inlinenoexcept

Constructor from another vector.

Definition at line 317 of file map_vector_std_ptr.hpp.

◆ vector() [4/4]

template<typename T , typename gp >
vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::vector ( vector< T, PtrMemory, layout_base, gp, STD_VECTOR > &&  v)
inlinenoexcept

Constructor from another vector.

Definition at line 325 of file map_vector_std_ptr.hpp.

◆ ~vector()

template<typename T , typename gp >
vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::~vector ( )
inlinenoexcept

destructor

Definition at line 332 of file map_vector_std_ptr.hpp.

Member Function Documentation

◆ add() [1/3]

template<typename T , typename gp >
void 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 102 of file map_vector_std_ptr.hpp.

◆ add() [2/3]

template<typename T , typename gp >
void 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 79 of file map_vector_std_ptr.hpp.

◆ add() [3/3]

template<typename T , typename gp >
void 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 93 of file map_vector_std_ptr.hpp.

◆ begin() [1/2]

template<typename T , typename gp >
T * 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 139 of file map_vector_std_ptr.hpp.

◆ begin() [2/2]

template<typename T , typename gp >
const T * 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 159 of file map_vector_std_ptr.hpp.

◆ clear()

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

Remove all the element from the vector.

Definition at line 65 of file map_vector_std_ptr.hpp.

◆ end() [1/2]

template<typename T , typename gp >
T * 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 149 of file map_vector_std_ptr.hpp.

◆ end() [2/2]

template<typename T , typename gp >
const T * 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 169 of file map_vector_std_ptr.hpp.

◆ erase()

template<typename T , typename gp >
void 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 116 of file map_vector_std_ptr.hpp.

◆ fill()

template<typename T , typename gp >
void 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 289 of file map_vector_std_ptr.hpp.

◆ get() [1/4]

template<typename T , typename gp >
template<unsigned int p>
T & 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 211 of file map_vector_std_ptr.hpp.

◆ get() [2/4]

template<typename T , typename gp >
T & 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 256 of file map_vector_std_ptr.hpp.

◆ get() [3/4]

template<typename T , typename gp >
template<unsigned int p>
const T & 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 237 of file map_vector_std_ptr.hpp.

◆ get() [4/4]

template<typename T , typename gp >
const T & 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 272 of file map_vector_std_ptr.hpp.

◆ getIterator()

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

Get iterator.

Returns
an iterator

Definition at line 405 of file map_vector_std_ptr.hpp.

◆ getLastError()

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

Return the last error.

Returns
the last error

Definition at line 468 of file map_vector_std_ptr.hpp.

◆ getPointer() [1/2]

template<typename T , typename gp >
void * 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 438 of file map_vector_std_ptr.hpp.

◆ getPointer() [2/2]

template<typename T , typename gp >
const void * 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 448 of file map_vector_std_ptr.hpp.

◆ last() [1/2]

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

Get the last element.

Returns
the last element as reference

Definition at line 179 of file map_vector_std_ptr.hpp.

◆ last() [2/2]

template<typename T , typename gp >
const T & 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 193 of file map_vector_std_ptr.hpp.

◆ noPointers()

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

This class has pointer inside.

Returns
false

Definition at line 458 of file map_vector_std_ptr.hpp.

◆ operator!=()

template<typename T , typename gp >
bool 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 379 of file map_vector_std_ptr.hpp.

◆ operator=() [1/2]

template<typename T , typename gp >
vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > & 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 351 of file map_vector_std_ptr.hpp.

◆ operator=() [2/2]

template<typename T , typename gp >
vector< T, HeapMemory, layout_base, grow_policy_double, STD_VECTOR > & 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 365 of file map_vector_std_ptr.hpp.

◆ operator==()

template<typename T , typename gp >
bool 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 393 of file map_vector_std_ptr.hpp.

◆ remove()

template<typename T , typename gp >
void 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 126 of file map_vector_std_ptr.hpp.

◆ reserve()

template<typename T , typename gp >
void 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 300 of file map_vector_std_ptr.hpp.

◆ resize()

template<typename T , typename gp >
void 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 54 of file map_vector_std_ptr.hpp.

◆ setMemory()

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

Definition at line 223 of file map_vector_std_ptr.hpp.

◆ size()

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

return the size of the vector

Definition at line 43 of file map_vector_std_ptr.hpp.

◆ swap()

template<typename T , typename gp >
void 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 341 of file map_vector_std_ptr.hpp.

◆ vector_overflow()

template<typename T , typename gp >
void 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 478 of file map_vector_std_ptr.hpp.

Field Documentation

◆ err_code

template<typename T , typename gp >
size_t vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::err_code
private

Error code.

Definition at line 30 of file map_vector_std_ptr.hpp.

◆ mem

template<typename T , typename gp >
PtrMemory* vector< T, PtrMemory, memory_traits_lin, gp, STD_VECTOR >::mem
private

1-D static grid

Definition at line 27 of file map_vector_std_ptr.hpp.

◆ v_size

template<typename T , typename gp >
size_t 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 24 of file map_vector_std_ptr.hpp.


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