| 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
-
stdvectorCreatecreates a stdvector object of the indicated type. -
stdvectorPushBackappends elements to an existing stdvector (see note fortype='any'). -
stdvectorSizereturns the number of elements of an existing stdvector. -
stdvectorClearremoves all the elements of an existing stdvector. -
stdvectorToVectorturns an existing stdvector into an R vector of the type chosen when the stdvector has been created. -
stdvectorSubsetsubsets an existing stdvector returning an R vector with the values corresponding to the selected indexes. -
stdvectorReplacereplace the elements atindexespositions with the values invaluesargument (see note fortype='any'). -
stdvectorEraseremove the elements fromindexFromtoindexTopositions. -
stdvectorClonecreate a deep copy of the stdvector object.
Value
-
stdvectorCreatereturns an object of classstdvector. -
stdvectorPushBackreturnNULLinvisibly. -
stdvectorSizereturns an integer equal to the size of thestdvector. -
stdvectorClearreturnsNULLinvisibly. -
stdvectorToVectorreturns an R vector of the type chosen when thestdvectorhas been created (type='any'will return a list). -
stdvectorSubsetreturns an R vector (of the type chosen when thestdvectorhas been created,type='any'will return a list) with the values corresponding to the selected indexes. -
stdvectorReplacereturnsNULLinvisibly. -
stdvectorErasereturnsNULLinvisibly. -
stdvectorClonereturns an object of classstdvectorwhich is the copy of the passed object.
Note
stdvector
stdvector objects are treated as references, so if you do
sv2 <- sv1and then you modifysv2actually alsosv1will be modified. You need to dosv2 <- stdvectorClone(sv1)to actually create a copy.-
stdvectorPushBackin case of stdvector oftype='any'will append the element passed in the argumentvaluesas a single new element of the vector, even if it's a list. -
stdvectorSubsetindexes must be between 1 and the size of the stdvector. -
stdvectorReplaceindexesandvaluesmust have the same length. In case of stdvector oftype='any'will accept onlyindexesof 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)