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)


_______________________________________________
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

Reply via email to