<html><head><meta http-equiv="content-type" content="text/html; charset=utf-8"></head><body dir="auto"><div>Hello, </div><div><br></div><div>just use: </div><div><br></div><div>double* values = input.begin() ;</div><div><br></div><div><span style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">A NumericVector uses R allocated memory, and R allocates an array of doubles to store a numeric vector. </span></div><div><br></div><div>You then need to remember you dońt own the pointer. So make sure your code does not eg delete[] it. </div><div><br></div><div>The code you've used was very inefficient and will make many unecessary copies of the data, each time the std::vctor wants to grow. </div><div><br></div><div>If you want a std:vector you can do something like this: </div><div><br></div><div>std::vector<double> vec( input.begin(), input.end() ) ; </div><div><br></div><div>Or: </div><div><br></div><div><span style="-webkit-tap-highlight-color: rgba(26, 26, 26, 0.296875); -webkit-composition-fill-color: rgba(175, 192, 227, 0.230469); -webkit-composition-frame-color: rgba(77, 128, 180, 0.230469); ">std::vector<double> vec = as< std::vector<double> >(input) ;</span></div><div><br></div><div>Romain</div><div><br>Le 29 juin 2013 à 12:08, Anwar Ludin <<a href="mailto:anwar.ludin@riskcetera.com">anwar.ludin@riskcetera.com</a>> a écrit :<br><br></div><blockquote type="cite"><div><meta http-equiv="Content-Type" content="text/html charset=us-ascii">Hello,<div><br></div><div>I need to interface some R code with a numerical library containing functions taking as input double*</div><div><br></div><div>What is the most efficient way to create an array of doubles from a NumericVector.</div><div><br></div><div>I was thinking of something like:</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div>// input is of type Rcpp::NumericVector and passed from R</div><div>std::vector<double> vec;</div><div>std::copy(input.begin(), input.end(), std::back_inserter(vec));</div><div><br></div><div style="text-align: left; ">double* values <font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; ">= &vec[0];</span></font></div><div style="text-align: left; "><font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; "><br></span></font></div><div style="text-align: left; "><font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; ">// now call function taking a double*</span></font></div><div style="text-align: left; "><font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; "><br></span></font></div><div style="text-align: left; "><font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; "><br></span></font></div><div style="text-align: left; "><font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; ">Regards,</span></font></div><div style="text-align: left; "><font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; "><br></span></font></div><div style="text-align: left; "><font color="#00008b" face="Consolas, Menlo, Monaco, Lucida Console, Liberation Mono, DejaVu Sans Mono, Bitstream Vera Sans Mono, Courier New, monospace, serif" size="4"><span style="line-height: 18px; ">Anwar</span></font></div></div></blockquote><blockquote type="cite"><div><span>_______________________________________________</span><br><span>Rcpp-devel mailing list</span><br><span><a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-project.org</a></span><br><span><a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel</a></span></div></blockquote></body></html>