A thinko on my part. Remove the '*' in front of the std::min_element.
On Sat, Jun 4, 2011 at 12:52 PM, Silkworth,David J. <silkw...@airproducts.com> wrote: > Many thanks, Doug, I feel so-o-o close, but the revised example does not > compile. > I have taken the liberty to condense our discussion a little here. > >>>> double* myIterator = std::min_element (TimeQ.begin(), TimeQ.end()); >>> >>> The usual idiom is >>> >>> double TQmin = *std::min_element(TimeQ.begin(), TimeQ.end()); > >>Sorry. I didn't read through to the end of your message. If you want >>the index of the minimum element you can use > >>int min_el_ind = *std::min_element(TimeQ.begin(), TimeQ.end()) - >>TimeQ.begin(); > >>The beauty of iterators is that they have more flexibility than simple >>pointers and they also carry more information, so that the difference >>between two iterators is the index of an element in an array-like >>structure. > > Here is the revised example as I have distilled it down and edited (does NOT > compile): > > src <- ' > Rcpp::NumericVector TimeQ(arg1); > Rcpp::IntegerVector show_position(1); > int min_el_ind = *std::min_element(TimeQ.begin(), TimeQ.end()) - > TimeQ.begin(); > show_position[0] = min_el_ind; > return show_position; > ' > fun <- cxxfunction(signature(arg1="numeric"),src,plugin="Rcpp") > Times<-c(1944.285,2920.969,1720.230,1264.438,3607.507,1720.230,25176.020); > fun_test<- fun(Times) > > >
foo.Rout
Description: Binary data
_______________________________________________ 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