Maybe I can give a slightly more elegant solution from Boost... (fingers crossed...) In this manner, the ugly for-loop is removed...
For the toy-example, I would suggest the following: std::vector<double> data; data.reserve(20); // extreamly important (maximize cache effect) std::copy(boost::counting_iterator(0), boost::counting_iterator(20), std::back_inserter(data)); return Rcpp::wrap(data); However, I do agree with Darren that this is not the place for pure C++ questions. Best regards, Tama Ma On Sep 22, 2011, at 1:59 PM, Darren Cook wrote: >> I think this is the current prize-winner of inappropriate use of Rcpp... >> How about using R to sort your vector?! > > There is also the fact that the array is being created ready-sorted :-). > I assumed this was an artificially simplified example from real code. Or > a learning toy. > >> This isn't really an Rcpp question, but since you asked, .push_back() >> is a great way to slow yourself down. > > Or add data.reserve(20) [1] after creating the vector. Then push_back() > is very quick. > > BTW, apologies for replying to something off-topic. Perhaps, Noah, Stack > Overflow would be a better place for pure-C++ questions? (Any other > suggestions anyone?) > > Darren > > [1]: http://www.cplusplus.com/reference/stl/vector/reserve/ > >>> std::vector<double> data; >>> >>> for(int i=0; i != 20; i++){ >>> data.push_back(i); >>> } >>> std::sort(data.front(), data.back()); >>> return Rcpp::wrap(data); > > > > -- > Darren Cook, Software Researcher/Developer > > http://dcook.org/work/ (About me and my work) > http://dcook.org/blogs.html (My blogs and articles) > _______________________________________________ > Rcpp-devel mailing list > Rcpp-devel@lists.r-forge.r-project.org > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel > Best regards, Tama Ma (+41 78 640 50 15) pingn...@phys.ethz.ch www.phys.ethz.ch/~pingnang HIT K 31.3 Institut für Theoretische Physik Wolfgang-Pauli-Strasse 27 ETH Hönggerberg 8093 Zürich Switzerland _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel