Jump to content
Fórum Script Brasil
  • 0

Dúvida templates


renamed

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...