Bonjour à tous,
Je souhaite créer un objet map dont le type des clés est une chaîne de caractères (char*) et le type des éléments à stocker est une liste de doubles.
Soit :
Le problème est que quand j'insère un nouvel élément dans ce map, au lieu de comparer la valeur des deux chaînes de caractères, il compare plutôt l'adresse mémoire des deux chaînes ! Du coup, le code suivant donne lieu à deux insertion dans la même position du map :
Code : Sélectionner tout - Visualiser dans une fenêtre à part std::map<char*,std::queue<double>> mon_map;
Quelqu'un aurait une idée de comment résoudre le problème?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 std::map<char*,std::queue<double>>mon_map; char* ma_chaine=new char[10]; sprintf(ma_chaine,"dix"); mon_map[ma_chaine].push(10); sprintf(ma_chaine,"trente"); // ici ma_chaine change de valeur mais pas d'adresse mémoire mon_map[ma_chaine].push(30); // l'insertion se fait pourtant dans la file d'attente de la chaine "dix"
D'avance merci !
Partager