c++ deux char* identiques, une seule permet d`acceder a une valeur d`une hash map
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:
hash_map<char*, char*> maHashTable;
ensuite je la remplis dans une fonction
Code:
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:
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.