How can I resize in Rcpp a NumericVector?
When I use the push_back function for this, the Program slows down. But there are no .resize() or .reserve() functions.
(When I have already a NumericVector with the desired size, I can use the copy-constructor to get the correct size of the NumericVector. This is in such a case much faster than usage of push_back)
If you prefer the C++ idioms, use
std::vector<double>and return that at the end where it will be converted via an implicitwrap()to an R vector. You could also use Armadillo or Eigen vectors via RcppArmadillo and RcppEigen.Our objects are shallow wrappers around the R object, so
push_backon, say, aRcp::NumericVectoralways needs a full copy. That is known and documented.Edit: So for completeness, here is an example using RcppArmadillo:
which we can deploy via