Função hash em c++

1. Função hash em c++

gustavo quirino
gustavoqui

(usa Outra)

Enviado em 07/11/2014 - 11:10h

Bom dia , estou tento dificuldades para fazer um trabalho onde tenho que usar a função apresentada para ler x, x1, x2 e imprimir o calculo da função para cada um deles , sendo que x ,x1,x2 são strings é o calculo é tipo um hash de cada uma dessas strings .
segue função :


unsigned int hash1 (char*s)
{
unsigned int hual=0;
while(*s!='{TEXTO}')
{
hual=(hual<<4)+*s;
s++;
}
return(hual);
}



alguem pode me dar uma luz !!


  


2. Re: Função hash em c++

gustavo quirino
gustavoqui

(usa Outra)

Enviado em 07/11/2014 - 11:17h

segue função correta .


unsigned int hash1 (char*s)
{
unsigned int hual=0;
while(*s!= //'\=0') coloquei como comentario pois esta convertendo o '\=0'
{
hual=(hual<<4)+*s;
s++;
}
return(hual);
}


3. Re: Função hash em c++

Paulo
paulo1205

(usa Ubuntu)

Enviado em 07/11/2014 - 18:41h

Dica: você pode omitir o !='\0' ou colocar !=0. Para transcrever aqui, pode também usar o truque sujo de colocar um espaço de largura zero (cárater Unicode 8203, ou 0x200b) entre a barra invertida e o zero.

Sua função hash desloca o valor acumulado 4 bits para a esquerda (que é o mesmo que multiplicar por 16) e soma ao acumulador o valor numérico do próximo caráter da string s. Tenho sérias dúvidas de se é uma boa função de hash, mas possivelmente funciona para algumas aplicações.


4. Re: Função hash em c++

gustavo quirino
gustavoqui

(usa Outra)

Enviado em 07/11/2014 - 19:31h

Entendi .... mas eu precisava de uma luz no algoritmo em si , como tenho que ler X e depois x1 e x2 como se fosse uma string , não entendi como converto o X para ser usado na função ... qnd uso hash1(x) da erro ja tentei outras formas mas não consegui ... sempre da erro de [Error] invalid conversion from 'char' to 'char*' [-fpermissive]... sou meio fraco em c++ ainda ...






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts