1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[C++] Número de vezes que um elemento existe numa pilha

Discussão em 'Programação' iniciada por Ribeiro8, 26 de Novembro de 2012. (Respostas: 2; Visualizações: 811)

  1. Ribeiro8

    Ribeiro8 Hard BOINC

    Boas pessoal,
    tou a ter alguns problemas em implementar uma função que use templates e que retorne o número de vezes que um elemento existe numa pilha.
    Esta função não deve alterar a pilha pelo que utilizei uma pilha "auxiliar".
    Aqui está o código que desenvolvi até agora:

    Código:
    template <class T>int existeEmPilha (const stack<T> &stack1, const T &v1){
    	stack<T> stack2 = stack1;
    	int res=0;
    	while(!stack2.empty()){
    		if(stack2.top()==v1){
    			stack2.pop();
    			res++;
    		}
    		stack2.pop();
    	}
    	return res;
    }
    o problema aqui é que a variável res está a retornar um valor acima do esperado, isto é, se o elemento ocorre duas vezes na pilha, a funçao retorna 3.

    Obrigado desde já.
     
  2. MoLt1eS

    MoLt1eS Power Member

    Mete uns pritns para fazer debug, mete um print para o valor da stack2.top() antes do if e metes um para o if
     
  3. Ribeiro8

    Ribeiro8 Hard BOINC

    Já consegui resolver o erro, faltava um else no if.
     

Partilhar esta Página