C++: Comment faire un simple dictionnaire?

Je suis en train de réaliser un dictionnaire avec 2 caractères, mots, mais pas autant de succès
Voici mon code:

#include <cstdlib>
#include <iostream>
#include <map>
using namespace std;

int main(int argc, char *argv[]){
    map<char*,int> m;
    //input 5 two-lengthed words 
    for (int i=0;i<5;i++){
        char s[3];
        cin>>s;
        s[2] = '
#include <cstdlib>
#include <iostream>
#include <map>
using namespace std;
int main(int argc, char *argv[]){
map<char*,int> m;
//input 5 two-lengthed words 
for (int i=0;i<5;i++){
char s[3];
cin>>s;
s[2] = '\0';
m[s]=1; //add a key
}
//checking if a word exists.
cout<<"Word you want to check whether it exists:"<<endl;
char chck[3];
cin>>chck;
chck[2]='\0';
//I heard this is how you check whether a key exists:
bool exists = m.find(chck)==m.end(); 
cout<<((exists)?"Yes!":"No.")<<endl;
system("pause"); //Yea, system, I know.
return 0;
}
'
; m[s]=1; //add a key } //checking if a word exists. cout<<"Word you want to check whether it exists:"<<endl; char chck[3]; cin>>chck; chck[2]='
#include <cstdlib>
#include <iostream>
#include <map>
using namespace std;
int main(int argc, char *argv[]){
map<char*,int> m;
//input 5 two-lengthed words 
for (int i=0;i<5;i++){
char s[3];
cin>>s;
s[2] = '\0';
m[s]=1; //add a key
}
//checking if a word exists.
cout<<"Word you want to check whether it exists:"<<endl;
char chck[3];
cin>>chck;
chck[2]='\0';
//I heard this is how you check whether a key exists:
bool exists = m.find(chck)==m.end(); 
cout<<((exists)?"Yes!":"No.")<<endl;
system("pause"); //Yea, system, I know.
return 0;
}
'
; //I heard this is how you check whether a key exists: bool exists = m.find(chck)==m.end(); cout<<((exists)?"Yes!":"No.")<<endl; system("pause"); //Yea, system, I know. return 0; }

Chaque fois que je saisir les mots, et puis quand je veux vérifier si un mot est dans le dictionnaire, j'ai toujours imprimé "Non".?
Je viens de Java j'ai donc pris l'habitude de références, pas de pointeurs, c'est là que je me suis probablement mal. Je veux apprendre à bien utiliser les cartes alors pouvez-vous s'il vous plaît ce que je suis censé faire ici?

Grâce

Il y a des références dans C++ et vous pouvez presque toujours utiliser à la place des points (je dis presque très légèrement). Au lieu d'utiliser * pour désigner pointeur, regardez & pour les références.
Le problème, c'est tout comme vous avez pensé - pointeurs vs références. Votre carte est de stocker des pointeurs de caractères comme la clé, et depuis ils sont tous les deux sur la pile, ils n'allez plus jamais être les mêmes. Pouvez-vous utiliser des chaînes à la place de char*?
Pour ce que ça vaut, Java variables (pour les types de référence) sont BEAUCOUP plus comme C++ les pointeurs que comme C++ références.

OriginalL'auteur SmRndGuy | 2013-03-01