• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Louise

hash-table

6 mensagens neste tópico

Se postasses o código aqui era mais fácil ajudar :D

Tava naquele site porque é mt cena,

Cliente.cpp

#include "cliente.h"

Cliente::Cliente() //Construtor vazio devido ao new
{
}
Cliente::Cliente(string user,string pass) //construtor
{
this->user = user;
this->password = pass;
}


bool Cliente::update_BI(string n) //actualiza o numero Bi
{
if(n.size()!= 9)
	return false;
else
{
	this->BI = n;
	return true;
}
}

string Cliente::login() // mostra login
{
return this->user;
}

string Cliente::pass() // mostra a pass
{
return this->password;
}
string Cliente::Mostra_bi() // mostra bi
{
return this->BI;
}
int Mostra_user() const
{
return login;
}

cliente.h

#ifndef Cliente_H  // se não estiver definido
#define Cliente_H

#include <iostream>
using std::cout;
using std::endl;

#include <string>
using std::string;
#include <vector>
using std::vector;
#include "pessoa.h"


class Cliente :public Pessoa
{
private:	

	string user;
	string password;
	string BI;
	int cod;
public:  
	Cliente ();
	Cliente(string user, string pass);
	class NaoPossivelApagar {};
	bool update_BI(string n);
	string login ();
	string pass();
	string Mostra_bi();
	int Mostra_user() const;
	size_t hash_value( const Cliente & cli )
	{
		return hash_value(cli.Mostra_user());
	}
	friend bool operator < (const Cliente& cli, const Cliente& cli1)
	{
	if (cli.Mostra_user() < cli1.Mostra_user())
		return true;
	else
		return false;
	}
};
#endif 

Pessoa.h

#ifndef Pessoa_H  // se não estiver definido
#define Pessoa_H

#include <string>
using std::string;

#include <ctype.h>

class Pessoa
{
private:
string nome;
string telefone;
string morada;
string nContribuinte;
public:
bool update_nome(string n);
bool update_telef(string n);
bool update_morada (string n);
bool update_contri(string n);
string Mostra_nome();
string Mostra_telefone();
string Mostra_morada();
string Mostra_contri();
int VerSeTemNome(){return nome.size();};
int VerSeTemMorada() {return morada.size();};
int VerSeTemTelefone() {return telefone.size();};
};
#endif;

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Neste momento, também estou envolvido num projecto pa faculdade, em que estou a usar hash_tables....  :D

E o que eu utilizei foi uma estrutura para criar esses operadores....em que o 1º retorna a célula da tabela, e o 2º compara dois elementos passados por parametro, este operador é utilizado para hash ao inserir verificar se na célula onde vai inserir o objecto, ñ está preenchida....  :hmm:

struct apostaHash
{
int operator() (const Aposta & ap) const
{
	return ap.somaNumeros();
}

bool operator() (const Aposta & ap1, const Aposta & ap2) const
{
	if ( ap1.tamanho() != ap2.tamanho() )
		return false;

	int n = ap1.calculaCertos(ap2.getNumeros());
	if ( n == ap1.tamanho() )
		return true;
	else
		return false;
}
};

hash_set<Aposta, apostaHash, apostaHash> HashApostas;

Pronto, agora é só fazer insert lá para dentro....

cumps  :)

0

Partilhar esta mensagem


Link 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