[Rcpp-devel] RcppArmadillo: resize vs. insert_cols

Ramon Diaz-Uriarte rdiaz02 at gmail.com
Mon Dec 10 14:04:51 CET 2012


Dear All,

I am using RcppArmadillo, and I am creating matrices in the C++ code
(i.e., these are not matrices passed from R). The sizes of these matrices
might need to increase dynamically during run time, with elements being
added at the end. What is the recommended way of doing this:


a) Just insert elements as needed. E.g.: Y.insert_cols(Y.n_cols, the_new_thing);

b) Create initial object. Double size of object (using resize) each time I
run out of space. Copy the_new_thing to the appropriate place.



I thought b) was a reasonable manual approach (e.g., Skiena, "The
algorithm design manual, 2nd ed", p. 67), but I think I've read that for
std::vector, a) (with push_back), is a better choice than b) (using
reserve, not resize).


For me, a) involves writing less code.  

Thanks,


R.


-- 
Ramon Diaz-Uriarte
Department of Biochemistry, Lab B-25
Facultad de Medicina 
Universidad Autónoma de Madrid 
Arzobispo Morcillo, 4
28029 Madrid
Spain

Phone: +34-91-497-2412

Email: rdiaz02 at gmail.com
       ramon.diaz at iib.uam.es

http://ligarto.org/rdiaz



More information about the Rcpp-devel mailing list