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)
>
>
>

Attachment: 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

Reply via email to