stdvectorClass {stdvectors} | R Documentation |
std::vector R wrapper
Description
Create and manipulate a C++ std:::vector in R.
Usage
stdvectorCreate(type = "double", reserve = 0L)
stdvectorPushBack(sdv, values)
stdvectorSize(sdv)
stdvectorClear(sdv)
stdvectorToVector(sdv)
stdvectorSubset(sdv,indexes)
stdvectorReplace(sdv,indexes,values)
stdvectorErase(sdv,indexFrom,indexTo)
stdvectorClone(sdv)
is.stdvector(x)
## S3 method for class 'stdvector'
print(x, ...)
## S3 method for class 'stdvector'
toString(x, ...)
Arguments
type |
Character string indicating the type of the vector; possible values: |
reserve |
The number of slots to be pre-allocated in the stdvector. |
sdv |
A stdvector object, as returned by |
... |
optional arguments passed to inner |
x |
A stdvector object, as returned by |
values |
Values to be appended (in |
indexes |
Indexes used to subset the current stdvector, in case of out of bounds indexes an error will be raised. |
indexFrom |
Used by |
indexTo |
Used by |
Details
-
stdvectorCreate
creates a stdvector object of the indicated type. -
stdvectorPushBack
appends elements to an existing stdvector (see note fortype='any'
). -
stdvectorSize
returns the number of elements of an existing stdvector. -
stdvectorClear
removes all the elements of an existing stdvector. -
stdvectorToVector
turns an existing stdvector into an R vector of the type chosen when the stdvector has been created. -
stdvectorSubset
subsets an existing stdvector returning an R vector with the values corresponding to the selected indexes. -
stdvectorReplace
replace the elements atindexes
positions with the values invalues
argument (see note fortype='any'
). -
stdvectorErase
remove the elements fromindexFrom
toindexTo
positions. -
stdvectorClone
create a deep copy of the stdvector object.
Value
-
stdvectorCreate
returns an object of classstdvector
. -
stdvectorPushBack
returnNULL
invisibly. -
stdvectorSize
returns an integer equal to the size of thestdvector
. -
stdvectorClear
returnsNULL
invisibly. -
stdvectorToVector
returns an R vector of the type chosen when thestdvector
has been created (type='any'
will return a list). -
stdvectorSubset
returns an R vector (of the type chosen when thestdvector
has been created,type='any'
will return a list) with the values corresponding to the selected indexes. -
stdvectorReplace
returnsNULL
invisibly. -
stdvectorErase
returnsNULL
invisibly. -
stdvectorClone
returns an object of classstdvector
which is the copy of the passed object.
Note
stdvector
stdvector objects are treated as references, so if you do
sv2 <- sv1
and then you modifysv2
actually alsosv1
will be modified. You need to dosv2 <- stdvectorClone(sv1)
to actually create a copy.-
stdvectorPushBack
in case of stdvector oftype='any'
will append the element passed in the argumentvalues
as a single new element of the vector, even if it's a list. -
stdvectorSubset
indexes must be between 1 and the size of the stdvector. -
stdvectorReplace
indexes
andvalues
must have the same length. In case of stdvector oftype='any'
will accept onlyindexes
of length one.
References
See http://en.cppreference.com/w/cpp/container/vector
Examples
# create a stdvector
sv <- stdvectorCreate('integer')
# add 100 values to it
for(i in 1:100){
# note that sv is modified in-place
stdvectorPushBack(sv,i)
}
# get a normal R vector from the stdvector
v <- stdvectorToVector(sv)