vetor.erase(n)? On Oct 17, 2013 4:39 PM, "Augusto Ribas" <[email protected]> wrote:
> Ola pessoal. > > Eu estou com uma dificuldade em como fazer uma chamada recursiva usando o > Rcpp. > > Por curiosidade, eu estava fazendo alguns códigos aqui usando o Rcpp, só > por experiencia. > Ai eu estava implementando o código para o insertion sort ( > http://pt.wikipedia.org/wiki/Insertion_sort) > > Minha duvida é a seguinte: > > #Suponha que eu tenho um vetor qualquer: > > vetor<-sample(100) > vetor > > #Iterativamente, eu fiz um código para usar com o Rcpp assim: > > library(Rcpp) > > cppFunction(" > NumericVector insertionsortC(NumericVector vetor) { > int n = vetor.size(); > > double aux; > int i , j; > > for(i=1;i<n;i++) { > aux=vetor[i]; > j=i-1; > while(j>=0 && vetor[j]>aux) { > vetor[j+1]=vetor[j]; > j=j-1; > } > vetor[j+1]=aux; > } > return vetor; > } > ") > > > #Funcionou beleza. Ai eu fui tentar repetir a tentativa, recursivamente > > cppFunction(" > NumericVector insertionsortRC(NumericVector vetor, int n) { > > double aux; > int i; > > if(n>1) { > insertionsortRC(vetor,n-1); > aux=vetor[n-1]; > i=n-1; > while(vetor[i-1]>aux && i>=0 ) { > vetor[i]=vetor[i-1]; > i--; > } > vetor[i]=aux; > } > > return vetor; > } > ") > > #E assim funcionou blz, mas eu tive que começar a mandar o argumento n, > #que é o tamanho do vetor > > #o que eu queria é fazer algo aqui, na chamada recursiva > > #insertionsortRC(vetor,n-1); > > #sei la, se eu conseguir tirar o ultimo elemento, eu posso suprimir esse > n-1 > #Eu não entendo de Rcpp e C++ muito bem. > #Mas tem uma forma simples de mudar o tamanho do vetor, ou arrancar o > ultimo elemento dele > #algo tipo vetor.pop() > > #pra fazer a chamada ficar tipo > #vetor.pop(); > #insertionsortRC(vetor); > #que ai no inicio da chamada eu uso o int n = vetor.size(); igual ao > formato iterativo. > #Bem, espero não estar sendo muito confuso na pergunta e que a função > funcione. > #Mas imagino que deve ser super simples isso. > > Agradeço a atenção desde ja :) > > -- > Grato > Augusto C. A. Ribas > > Site Pessoal: http://recologia.com.br/ <http://augustoribas.heliohost.org> > Github: https://github.com/Squiercg > Lattes: http://lattes.cnpq.br/7355685961127056 > > _______________________________________________ > R-br mailing list > [email protected] > https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br > Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça > código mínimo reproduzível. >
_______________________________________________ R-br mailing list [email protected] https://listas.inf.ufpr.br/cgi-bin/mailman/listinfo/r-br Leia o guia de postagem (http://www.leg.ufpr.br/r-br-guia) e forneça código mínimo reproduzível.
