Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida templates


renamed

Pergunta

Oi pessoal

Eu programo em Java há algum tempo e resolvi aprender C++. Meu maior problema é que tento fazer as coisas em C++ da forma com que eu fazia em Java, e isso nem sempre é uma boa escolha.

Para treinar, estou criando uma lista encadeada em C++ (usando templates). Em um dado momento, fui criar o método remover, veja abaixo:

No início do código coloquei

#define null 0
Mais lá pro final, cheguei a esse impasse:
int getIndice(T alvo)
        {
            Elemento *atual;
            atual = primeiro;
            int i = 0;
            while (atual != null)
            {
                if (atual->elem == alvo)
                {
                    return i;
                }
                i++;
                atual = atual->proximo;
            }
            return -1;
       }
       T removerInicio(T elemento)
        {
            int indice = getIndice(elemento);
            if (indice == -1)
            {
                return null;
            }
            return removerInicio(indice);
        }
        T removerInicio(int indice)
        {
            if (ehVazia())
            {

            }
        }

O problema é que em Java tudo é pointeiro, então no método removerInicio(T elemento), caso o índice do elemento fosse -1 (não existe), ele deveria retornar null. Isso em C++ não funciona, pois não necessariamente essa lista encadeada será de ponteiros.

Esse problema (ter uma lista encadeada tanto de ponteiros quanto de não-ponteiros) me deixou sem solução. Será que alguém teria alguma ideia para me ajudar a resolver esse impasse? Tipo o que retornar ou que modificações eu deveria fazer? Eu não gostaria de obrigar que minha lista só aceitasse ponteiros.

Muito obrigado.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...