Bonjour,

J'ai créé un map avec comme clé un const char*.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
std::map<const char*, int> pouet;

map["foo1"] = 1;
map["foo2"] = 2;

const char* cle1 = "foo1";
std::string   cle2 = "foo2";

std::map<const char*, int>::const_iterator
   iterator1(pouet.find(cle)),
   iterator2(pouet.end());

if (mit != end)
   cout << "Clé trouvée." << endl;
Si, dans l'argument du find, je mets cle1, l'élément est trouvé.
Si je mets cle2.c_str(), l'élément n'est pas trouvé.

Pourquoi ? Parce qu'on compare dans le map des pointeurs ?

Merci.