Bonjour, je voudrais utiliser la classe template CMap des MFC, cependant, je
n'ais pas trouvé, dans la documentation fournie avec Visual C++ 6.0, les
moyens que je pourrais employer pour vérifier le bon déroulement des
fonctions membres de cette classe.
Par exemple, comment savoir si la fonction membre SetAt n'a pas subit un
échec d'allocation en mémoire ? En essayant d'intercepter une
CMemoryException ? Mais cela n'est pas précisé dans la doc alors .
Si quelqu'un peut me renseigner, Merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Alexandre
"Jmr" a écrit dans le message de news:blmumk$phr$
Bonjour, je voudrais utiliser la classe template CMap des MFC, cependant,
je
n'ais pas trouvé, dans la documentation fournie avec Visual C++ 6.0, les moyens que je pourrais employer pour vérifier le bon déroulement des fonctions membres de cette classe. Par exemple, comment savoir si la fonction membre SetAt n'a pas subit un échec d'allocation en mémoire ? En essayant d'intercepter une CMemoryException ? Mais cela n'est pas précisé dans la doc alors . Si quelqu'un peut me renseigner, Merci.
bonjour, je connais pas la CMap des MFC... Serait-elle du même genre que la map de la STL ? Si c'est le cas, je te conseille d'utiliser la map standard.
"Jmr" <jmr.div.bla@wanadoo.fr> a écrit dans le message de
news:blmumk$phr$1@news-reader2.wanadoo.fr...
Bonjour, je voudrais utiliser la classe template CMap des MFC, cependant,
je
n'ais pas trouvé, dans la documentation fournie avec Visual C++ 6.0, les
moyens que je pourrais employer pour vérifier le bon déroulement des
fonctions membres de cette classe.
Par exemple, comment savoir si la fonction membre SetAt n'a pas subit un
échec d'allocation en mémoire ? En essayant d'intercepter une
CMemoryException ? Mais cela n'est pas précisé dans la doc alors .
Si quelqu'un peut me renseigner, Merci.
bonjour,
je connais pas la CMap des MFC... Serait-elle du même genre que la map de la
STL ? Si c'est le cas, je te conseille d'utiliser la map standard.
Bonjour, je voudrais utiliser la classe template CMap des MFC, cependant,
je
n'ais pas trouvé, dans la documentation fournie avec Visual C++ 6.0, les moyens que je pourrais employer pour vérifier le bon déroulement des fonctions membres de cette classe. Par exemple, comment savoir si la fonction membre SetAt n'a pas subit un échec d'allocation en mémoire ? En essayant d'intercepter une CMemoryException ? Mais cela n'est pas précisé dans la doc alors . Si quelqu'un peut me renseigner, Merci.
bonjour, je connais pas la CMap des MFC... Serait-elle du même genre que la map de la STL ? Si c'est le cas, je te conseille d'utiliser la map standard.
Jmr
Je ne connais pas STL, mais en consultant le code source de la classe CMap, il semblerait que celui-ci ne fasse appel qu'aux « fonction » « AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d' allocation mémoire ne conduirait alors qu'à l'affichage d'un message suivit de l'abandon du programme. D'où la question, comment peut faire l' utilisateur de la classe CMap pour éviter cela ?
"Alexandre" a écrit dans le message de news:3f7ffc26$0$10425$
"Jmr" a écrit dans le message de news:blmumk$phr$ > Bonjour, je voudrais utiliser la classe template CMap des MFC,
cependant,
je > n'ais pas trouvé, dans la documentation fournie avec Visual C++ 6.0,
les
> moyens que je pourrais employer pour vérifier le bon déroulement des > fonctions membres de cette classe. > Par exemple, comment savoir si la fonction membre SetAt n'a pas subit un > échec d'allocation en mémoire ? En essayant d'intercepter une > CMemoryException ? Mais cela n'est pas précisé dans la doc alors . > Si quelqu'un peut me renseigner, Merci. > bonjour, je connais pas la CMap des MFC... Serait-elle du même genre que la map de
la
STL ? Si c'est le cas, je te conseille d'utiliser la map standard.
Je ne connais pas STL, mais en consultant le code source de la classe CMap,
il semblerait que celui-ci ne fasse appel qu'aux « fonction » «
AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d'
allocation mémoire ne conduirait alors qu'à l'affichage d'un message suivit
de l'abandon du programme. D'où la question, comment peut faire l'
utilisateur de la classe CMap pour éviter cela ?
"Alexandre" <alex.g@netcourrier.com> a écrit dans le message de
news:3f7ffc26$0$10425$626a54ce@news.free.fr...
"Jmr" <jmr.div.bla@wanadoo.fr> a écrit dans le message de
news:blmumk$phr$1@news-reader2.wanadoo.fr...
> Bonjour, je voudrais utiliser la classe template CMap des MFC,
cependant,
je
> n'ais pas trouvé, dans la documentation fournie avec Visual C++ 6.0,
les
> moyens que je pourrais employer pour vérifier le bon déroulement des
> fonctions membres de cette classe.
> Par exemple, comment savoir si la fonction membre SetAt n'a pas subit un
> échec d'allocation en mémoire ? En essayant d'intercepter une
> CMemoryException ? Mais cela n'est pas précisé dans la doc alors .
> Si quelqu'un peut me renseigner, Merci.
>
bonjour,
je connais pas la CMap des MFC... Serait-elle du même genre que la map de
la
STL ? Si c'est le cas, je te conseille d'utiliser la map standard.
Je ne connais pas STL, mais en consultant le code source de la classe CMap, il semblerait que celui-ci ne fasse appel qu'aux « fonction » « AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d' allocation mémoire ne conduirait alors qu'à l'affichage d'un message suivit de l'abandon du programme. D'où la question, comment peut faire l' utilisateur de la classe CMap pour éviter cela ?
"Alexandre" a écrit dans le message de news:3f7ffc26$0$10425$
"Jmr" a écrit dans le message de news:blmumk$phr$ > Bonjour, je voudrais utiliser la classe template CMap des MFC,
cependant,
je > n'ais pas trouvé, dans la documentation fournie avec Visual C++ 6.0,
les
> moyens que je pourrais employer pour vérifier le bon déroulement des > fonctions membres de cette classe. > Par exemple, comment savoir si la fonction membre SetAt n'a pas subit un > échec d'allocation en mémoire ? En essayant d'intercepter une > CMemoryException ? Mais cela n'est pas précisé dans la doc alors . > Si quelqu'un peut me renseigner, Merci. > bonjour, je connais pas la CMap des MFC... Serait-elle du même genre que la map de
la
STL ? Si c'est le cas, je te conseille d'utiliser la map standard.
Alexandre
"Jmr" a écrit dans le message de news:blpogp$5h8$
Je ne connais pas STL, mais en consultant le code source de la classe
CMap,
il semblerait que celui-ci ne fasse appel qu'aux « fonction » « AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d' allocation mémoire ne conduirait alors qu'à l'affichage d'un message
suivit
de l'abandon du programme. D'où la question, comment peut faire l' utilisateur de la classe CMap pour éviter cela ?
Qu'est-ce qu'est censée faire cette classe CMap ? Un conteneur associatif (comme std::map) ou rien à voir ?
"Jmr" <jmr.div.bla@wanadoo.fr> a écrit dans le message de
news:blpogp$5h8$1@news-reader3.wanadoo.fr...
Je ne connais pas STL, mais en consultant le code source de la classe
CMap,
il semblerait que celui-ci ne fasse appel qu'aux « fonction » «
AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d'
allocation mémoire ne conduirait alors qu'à l'affichage d'un message
suivit
de l'abandon du programme. D'où la question, comment peut faire l'
utilisateur de la classe CMap pour éviter cela ?
Qu'est-ce qu'est censée faire cette classe CMap ? Un conteneur associatif
(comme std::map) ou rien à voir ?
Je ne connais pas STL, mais en consultant le code source de la classe
CMap,
il semblerait que celui-ci ne fasse appel qu'aux « fonction » « AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d' allocation mémoire ne conduirait alors qu'à l'affichage d'un message
suivit
de l'abandon du programme. D'où la question, comment peut faire l' utilisateur de la classe CMap pour éviter cela ?
Qu'est-ce qu'est censée faire cette classe CMap ? Un conteneur associatif (comme std::map) ou rien à voir ?
Jmr
Cmap est un patron de classe qui fournie les comportements nécessaires à la gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée » dont les éléments sont identifiés par une clef. Les fonctions membres de la classe CMap utilisant un algorithme évolué pour accéder à l'élément identifié par la clef. Peut-être est-il nécessaire d'adapter le code de la classe à sa convenance ?
"Alexandre" a écrit dans le message de news:3f8302e9$0$13284$
"Jmr" a écrit dans le message de news:blpogp$5h8$ > Je ne connais pas STL, mais en consultant le code source de la classe CMap, > il semblerait que celui-ci ne fasse appel qu'aux « fonction » « > AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d' > allocation mémoire ne conduirait alors qu'à l'affichage d'un message suivit > de l'abandon du programme. D'où la question, comment peut faire l' > utilisateur de la classe CMap pour éviter cela ? >
Qu'est-ce qu'est censée faire cette classe CMap ? Un conteneur associatif (comme std::map) ou rien à voir ?
Cmap est un patron de classe qui fournie les comportements nécessaires à la
gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée » dont
les éléments sont identifiés par une clef. Les fonctions membres de la
classe CMap utilisant un algorithme évolué pour accéder à l'élément
identifié par la clef.
Peut-être est-il nécessaire d'adapter le code de la classe à sa convenance ?
"Alexandre" <alex.g@netcourrier.com> a écrit dans le message de
news:3f8302e9$0$13284$626a54ce@news.free.fr...
"Jmr" <jmr.div.bla@wanadoo.fr> a écrit dans le message de
news:blpogp$5h8$1@news-reader3.wanadoo.fr...
> Je ne connais pas STL, mais en consultant le code source de la classe
CMap,
> il semblerait que celui-ci ne fasse appel qu'aux « fonction » «
> AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d'
> allocation mémoire ne conduirait alors qu'à l'affichage d'un message
suivit
> de l'abandon du programme. D'où la question, comment peut faire l'
> utilisateur de la classe CMap pour éviter cela ?
>
Qu'est-ce qu'est censée faire cette classe CMap ? Un conteneur associatif
(comme std::map) ou rien à voir ?
Cmap est un patron de classe qui fournie les comportements nécessaires à la gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée » dont les éléments sont identifiés par une clef. Les fonctions membres de la classe CMap utilisant un algorithme évolué pour accéder à l'élément identifié par la clef. Peut-être est-il nécessaire d'adapter le code de la classe à sa convenance ?
"Alexandre" a écrit dans le message de news:3f8302e9$0$13284$
"Jmr" a écrit dans le message de news:blpogp$5h8$ > Je ne connais pas STL, mais en consultant le code source de la classe CMap, > il semblerait que celui-ci ne fasse appel qu'aux « fonction » « > AfxIsValidAddress » et ASSERT. Par suite, la détection d'un défaut d' > allocation mémoire ne conduirait alors qu'à l'affichage d'un message suivit > de l'abandon du programme. D'où la question, comment peut faire l' > utilisateur de la classe CMap pour éviter cela ? >
Qu'est-ce qu'est censée faire cette classe CMap ? Un conteneur associatif (comme std::map) ou rien à voir ?
Alexandre
"Jmr" a écrit dans le message de news:bm1fsr$jp7$
Cmap est un patron de classe qui fournie les comportements nécessaires à
la
gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée »
dont
les éléments sont identifiés par une clef. Les fonctions membres de la classe CMap utilisant un algorithme évolué pour accéder à l'élément identifié par la clef. Peut-être est-il nécessaire d'adapter le code de la classe à sa convenance
?
Bonjour, alors dans ce cas la classe standard std::map fonctionne pareil. Je te conseille de l'utiliser car elle existe sur tout compilo C++. (contrairement à CMap qui est une classe des MFC donc limitée à Visual C++)
Pour reprendre ta question originale, la classe std::map déclenche des exceptions en cas d'erreur, qui peuvent être de plusieurs type : - bad_alloc pour les problèmes d'allocation par new - out_of_range en cas d'accès impossible avec des opérateurs type at() ou [] - etc... En tout cas, toutes ces exceptions dérivent d' exception, qui est la classe standard des exceptions en C++ (déclenchées par le langage ou la STL, donc map).
Pour utiliser map, il faut inclure <map> (logique, non ?)
try { Repertoire["Marcel"]= "0120457480"; //..... std::cout<<"Le numéro de marcel est :"<<Repertoire["Marcel"]; //.... REPERTOIRE::iterator It; // itérateur sur une paire for( It = Repertoire.begin(); It != Repertoire.end(); ++It) cout<<"nLe numéro de "<<It->first<<" est "<<It->second;
//---- } catch(std::exception& e) { std::cerr<<"nErreur dans l'utilisation de map"; } }
bon, c'est un code rapide pour montrer std::map. bien sûr, tu peux éviter les std:: en employant "using namespace std"
Pour + de détails voir l'aide en ligne de la STL.
Bonne chance. A+
"Jmr" <jmr.div.bla@wanadoo.fr> a écrit dans le message de
news:bm1fsr$jp7$1@news-reader1.wanadoo.fr...
Cmap est un patron de classe qui fournie les comportements nécessaires à
la
gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée »
dont
les éléments sont identifiés par une clef. Les fonctions membres de la
classe CMap utilisant un algorithme évolué pour accéder à l'élément
identifié par la clef.
Peut-être est-il nécessaire d'adapter le code de la classe à sa convenance
?
Bonjour,
alors dans ce cas la classe standard std::map fonctionne pareil. Je te
conseille de l'utiliser car elle existe sur tout compilo C++. (contrairement
à CMap qui est une classe des MFC donc limitée à Visual C++)
Pour reprendre ta question originale, la classe std::map déclenche des
exceptions en cas d'erreur, qui peuvent être de plusieurs type :
- bad_alloc pour les problèmes d'allocation par new
- out_of_range en cas d'accès impossible avec des opérateurs type at()
ou []
- etc...
En tout cas, toutes ces exceptions dérivent d' exception, qui est la classe
standard des exceptions en C++ (déclenchées par le langage ou la STL, donc
map).
Pour utiliser map, il faut inclure <map> (logique, non ?)
try {
Repertoire["Marcel"]= "0120457480";
//.....
std::cout<<"Le numéro de marcel est :"<<Repertoire["Marcel"];
//....
REPERTOIRE::iterator It; // itérateur sur une paire
for( It = Repertoire.begin(); It != Repertoire.end(); ++It)
cout<<"nLe numéro de "<<It->first<<" est "<<It->second;
//----
}
catch(std::exception& e)
{
std::cerr<<"nErreur dans l'utilisation de map";
}
}
bon, c'est un code rapide pour montrer std::map. bien sûr, tu peux éviter
les std:: en employant "using namespace std"
Cmap est un patron de classe qui fournie les comportements nécessaires à
la
gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée »
dont
les éléments sont identifiés par une clef. Les fonctions membres de la classe CMap utilisant un algorithme évolué pour accéder à l'élément identifié par la clef. Peut-être est-il nécessaire d'adapter le code de la classe à sa convenance
?
Bonjour, alors dans ce cas la classe standard std::map fonctionne pareil. Je te conseille de l'utiliser car elle existe sur tout compilo C++. (contrairement à CMap qui est une classe des MFC donc limitée à Visual C++)
Pour reprendre ta question originale, la classe std::map déclenche des exceptions en cas d'erreur, qui peuvent être de plusieurs type : - bad_alloc pour les problèmes d'allocation par new - out_of_range en cas d'accès impossible avec des opérateurs type at() ou [] - etc... En tout cas, toutes ces exceptions dérivent d' exception, qui est la classe standard des exceptions en C++ (déclenchées par le langage ou la STL, donc map).
Pour utiliser map, il faut inclure <map> (logique, non ?)
try { Repertoire["Marcel"]= "0120457480"; //..... std::cout<<"Le numéro de marcel est :"<<Repertoire["Marcel"]; //.... REPERTOIRE::iterator It; // itérateur sur une paire for( It = Repertoire.begin(); It != Repertoire.end(); ++It) cout<<"nLe numéro de "<<It->first<<" est "<<It->second;
//---- } catch(std::exception& e) { std::cerr<<"nErreur dans l'utilisation de map"; } }
bon, c'est un code rapide pour montrer std::map. bien sûr, tu peux éviter les std:: en employant "using namespace std"
Pour + de détails voir l'aide en ligne de la STL.
Bonne chance. A+
Jmr
Merci
"Alexandre" a écrit dans le message de news:3f847815$0$2806$
"Jmr" a écrit dans le message de news:bm1fsr$jp7$ > Cmap est un patron de classe qui fournie les comportements nécessaires à la > gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée » dont > les éléments sont identifiés par une clef. Les fonctions membres de la > classe CMap utilisant un algorithme évolué pour accéder à l'élément > identifié par la clef. > Peut-être est-il nécessaire d'adapter le code de la classe à sa
convenance
? >
Bonjour, alors dans ce cas la classe standard std::map fonctionne pareil. Je te conseille de l'utiliser car elle existe sur tout compilo C++.
(contrairement
à CMap qui est une classe des MFC donc limitée à Visual C++)
Pour reprendre ta question originale, la classe std::map déclenche des exceptions en cas d'erreur, qui peuvent être de plusieurs type : - bad_alloc pour les problèmes d'allocation par new - out_of_range en cas d'accès impossible avec des opérateurs type at() ou [] - etc... En tout cas, toutes ces exceptions dérivent d' exception, qui est la
classe
standard des exceptions en C++ (déclenchées par le langage ou la STL, donc map).
Pour utiliser map, il faut inclure <map> (logique, non ?)
try { Repertoire["Marcel"]= "0120457480"; //..... std::cout<<"Le numéro de marcel est :"<<Repertoire["Marcel"]; //.... REPERTOIRE::iterator It; // itérateur sur une paire for( It = Repertoire.begin(); It != Repertoire.end(); ++It) cout<<"nLe numéro de "<<It->first<<" est "<<It->second;
//---- } catch(std::exception& e) { std::cerr<<"nErreur dans l'utilisation de map"; } }
bon, c'est un code rapide pour montrer std::map. bien sûr, tu peux éviter les std:: en employant "using namespace std"
Pour + de détails voir l'aide en ligne de la STL.
Bonne chance. A+
Merci
"Alexandre" <alex.g@netcourrier.com> a écrit dans le message de
news:3f847815$0$2806$626a54ce@news.free.fr...
"Jmr" <jmr.div.bla@wanadoo.fr> a écrit dans le message de
news:bm1fsr$jp7$1@news-reader1.wanadoo.fr...
> Cmap est un patron de classe qui fournie les comportements nécessaires à
la
> gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée »
dont
> les éléments sont identifiés par une clef. Les fonctions membres de la
> classe CMap utilisant un algorithme évolué pour accéder à l'élément
> identifié par la clef.
> Peut-être est-il nécessaire d'adapter le code de la classe à sa
convenance
?
>
Bonjour,
alors dans ce cas la classe standard std::map fonctionne pareil. Je te
conseille de l'utiliser car elle existe sur tout compilo C++.
(contrairement
à CMap qui est une classe des MFC donc limitée à Visual C++)
Pour reprendre ta question originale, la classe std::map déclenche des
exceptions en cas d'erreur, qui peuvent être de plusieurs type :
- bad_alloc pour les problèmes d'allocation par new
- out_of_range en cas d'accès impossible avec des opérateurs type at()
ou []
- etc...
En tout cas, toutes ces exceptions dérivent d' exception, qui est la
classe
standard des exceptions en C++ (déclenchées par le langage ou la STL, donc
map).
Pour utiliser map, il faut inclure <map> (logique, non ?)
try {
Repertoire["Marcel"]= "0120457480";
//.....
std::cout<<"Le numéro de marcel est :"<<Repertoire["Marcel"];
//....
REPERTOIRE::iterator It; // itérateur sur une paire
for( It = Repertoire.begin(); It != Repertoire.end(); ++It)
cout<<"nLe numéro de "<<It->first<<" est "<<It->second;
//----
}
catch(std::exception& e)
{
std::cerr<<"nErreur dans l'utilisation de map";
}
}
bon, c'est un code rapide pour montrer std::map. bien sûr, tu peux éviter
les std:: en employant "using namespace std"
"Alexandre" a écrit dans le message de news:3f847815$0$2806$
"Jmr" a écrit dans le message de news:bm1fsr$jp7$ > Cmap est un patron de classe qui fournie les comportements nécessaires à la > gestion d'un « dictionnaire » qui serait une sorte de liste « chaînée » dont > les éléments sont identifiés par une clef. Les fonctions membres de la > classe CMap utilisant un algorithme évolué pour accéder à l'élément > identifié par la clef. > Peut-être est-il nécessaire d'adapter le code de la classe à sa
convenance
? >
Bonjour, alors dans ce cas la classe standard std::map fonctionne pareil. Je te conseille de l'utiliser car elle existe sur tout compilo C++.
(contrairement
à CMap qui est une classe des MFC donc limitée à Visual C++)
Pour reprendre ta question originale, la classe std::map déclenche des exceptions en cas d'erreur, qui peuvent être de plusieurs type : - bad_alloc pour les problèmes d'allocation par new - out_of_range en cas d'accès impossible avec des opérateurs type at() ou [] - etc... En tout cas, toutes ces exceptions dérivent d' exception, qui est la
classe
standard des exceptions en C++ (déclenchées par le langage ou la STL, donc map).
Pour utiliser map, il faut inclure <map> (logique, non ?)
try { Repertoire["Marcel"]= "0120457480"; //..... std::cout<<"Le numéro de marcel est :"<<Repertoire["Marcel"]; //.... REPERTOIRE::iterator It; // itérateur sur une paire for( It = Repertoire.begin(); It != Repertoire.end(); ++It) cout<<"nLe numéro de "<<It->first<<" est "<<It->second;
//---- } catch(std::exception& e) { std::cerr<<"nErreur dans l'utilisation de map"; } }
bon, c'est un code rapide pour montrer std::map. bien sûr, tu peux éviter les std:: en employant "using namespace std"