Bonjour
J`ai un probleme de programmation en C++
le but du programme est d'avoir des char* stockes dans une table de hachage de type hash_map<char*, char*>
mon probleme est pour recuper les valeurs dans cette table de hachage.
j'essaie une premiere fois avec un char* a qui je donne directement une valeur par exemple "pentree" la ca marche
st je calcule cette entree a partir d un string de la meme valeur pour obtenir un char* qui aura aussi la meme valeur c ane marche plus

si quelqu'un connait la solution ca serait super sympa de me donner une indication car je planche dessus depuis un bout de temps

voici le morceau de code:

je definis ma table de hachage:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
hash_map<char*, char*> maHashTable;
ensuite je la remplis dans une fonction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
void maClasse::createHashTable()
	{
	char * entree1 = "pentree";
	char * entree2 = "sentree";
	maHashTable[albumT] = "sortie1"
	maHashTable[imageN] = "sortie2";
 
}
jusque la tout va bien
ensuite j'essaie d'acceder a ces valeurs dans une autre fonction qui prend en entree un string.
La rien ne va plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
std::string maClasse::valueOfHashTable(std::string sWordToReplace)
{
	std::string hashValue;
	char * charHashValue;
	char * apart;
	std::string testString = "pentree";
	char * testPipo = "pentree";
	//je fais l essai avec un string pour retrouver la valeur associee a "pentree"
 
	apart = testBis;
 
       // maintenant je compare les deux valeurs testPipo et apart
       // les deux valent exactement la meme chose
 
if(strcmp(apart,testPipo)==0)
	{
		cout << "the two values are same"<<endl;
		cout << apart<< endl;
		cout << testPipo << endl;
	}
	charHashValue = maHashTable[testPipo];// la ca marche
        charHashValue = maHashTable[apart]; // la ca marche plus
hashValue = charHashValue;
return hashValue;
 
}
Balises code ajoutées.