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, recursivamentecppFunction("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 :)--