Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

lesiano

HashTables

Mensagens Recomendadas

lesiano

Boas;

Admitindo que tenho duas HashTables (uma mapeada por uma string e outra por um inteiro) como posso fazer uma função que insira e que funcione para as duas HashTables?

Estava a pensar em:

CLIENTE procura(HashNome x, HashNumero y, Cliente c){

if(x==NULL) procura2(y,c);

if(y==NULL) procura3(x,c);

}

mas isto é uma má solução. Eu queria passar só o apontador da HashTable, mas vai-me dar incompatibilidade de tipos porque não são do mesmo tipo. Alguém me diz a resposta?

Danke

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rui Carlos

Podes ter implementações de HashTables genéricas, que possam ser utilizadas com diferentes tipos de dados.

Também podes eliminar os erros de tipos com castings.

CLIENTE procura(void *x, Cliente c){
  if(x==NULL) procura2((HashNome)y,c);
  // ou if(y==NULL) procura3((HashNumero)x,c);
}

Isto assumindo que o tipo HashName é um apontador (se não é, se calhar devia, pois permite-te fazer este tipo de coisas mais genéricas). É claro que ainda terias que arranjar maneira de saber qual a função a chamar.

Mas relativamente a esse ponto, parece-me que devias ter duas funções diferentes. Uma que recebia uma hash table e um nome, e outra que recebia uma hashtable e um cliente.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.