passage par référence - C++ - Programmation
Marsh Posté le 10-06-2008 à 11:20:18
Salut,
Une petite chose m'a sauté aux yeux dans ton code :
[...]vector < vector<string>> & myData, [...]
Les deux chevrons fermants du double "vector" sont collés. Le compilo les interprète comme un opérateur de flux ">>".
Mets un espace entre les deux '>'. Ça devrait marcher un peu mieux.
Marsh Posté le 10-06-2008 à 11:25:02
jxano a écrit : Salut, |
hélas non le probleme ne vient pas de la. j'ai corrigé le code et a l'exécution j'ai toujours le meme probleme.
Marsh Posté le 10-06-2008 à 11:51:21
en fait je viens de faire un test en mettant tout en commentaire et en ayant dans mon code que les lignes suivantes :
Code :
|
et en mode debug toujours quand je fais une visualisation des donnees max reste toujours comme cela :
Code :
|
j'ai en fait l'empression que mon code n'est pas exécuté meme si il s'arrete bien sur la ligne avec les breakpoints em mode debug.
Marsh Posté le 10-06-2008 à 12:09:09
Si tu utilise visual vire l'optimisation du code des fois ça fait des trucs chelou en debug
Marsh Posté le 10-06-2008 à 12:23:46
kyntriad a écrit : Si tu utilise visual vire l'optimisation du code des fois ça fait des trucs chelou en debug |
il était déja désactivé. donc en fait j'ai supprimé toutes mes classes et je les aient remise apres et tout fonctionne maintenant.
les mysteres de la compilation
Marsh Posté le 10-06-2008 à 12:28:27
Code :
|
À mon avis, le namespace std::vector n'est pas très utile, mais je peux me tromper.
Comment visualise-tu les données ? Perso, j'utiliserais un itérateur pour lire le vecteur :
Code :
|
Marsh Posté le 10-06-2008 à 12:40:48
jxano a écrit : [cpp] |
en mode debug tu peux "voir" les données locales dans une fenetre séparée avec le nom de la variables, sa valeur et son type. c'est tres pratique quand tu as beaucoup de gros tableaux par exemples
Marsh Posté le 10-06-2008 à 16:24:38
jxano a écrit :
|
Mon oreillette me dit :
Code :
|
Sinon t'as testé un passage par ref simpel dans une fonction débile ?
Marsh Posté le 29-06-2008 à 12:43:23
Bonjour,
Pardon de reprendre cette vieille discussion...
Citation : Mon oreillette me dit :
|
Par acquis de conscience, j'ai essayé l'algorithme "copy()" dans un de mes programmes.
Pour l'utiliser, il convient tout d'abord de spécifier les en-têtes <algorithm> et <ostream> en début de source.
Dans mon programme, j'ai remplacé le type "int" par "Entier", une classe utilisateur implantant un entier long avec un "vector<char>".
Code :
|
J'ai le désagrément de constater que mon compilateur (g++ sous Kubuntu) a toutes les peines du monde à instancier cette classe ostream_iterator<Entier>.
Joel F, ta méthode est élégante, mais exigeante... en tout cas restreinte aux patrons de types prédéfinis.
EDIT : Je viens de m'apercevoir qu'il faut que je surcharge l'opérateur << pour utiliser copy(), entre autres...
Marsh Posté le 29-06-2008 à 17:51:19
bah, c'est comme tout, tu lis la doc de la STL et tu auras la liste des concepts et interface que les types passable à copy exigent. C'est pas parce que tu n'arrive pas à la faire marcher que ca marche
Ensuite, sauf précision de ma part, les codes que je poste ne sont pas compilables (sauf ils commencent par un #include) mais représente un exemple de syntaxe. Le reste c'est dans la doc.
Enfin, operator<< est nécessaire pour ostream_iterator<> par pour copy qui lui ne demandent qu'un constructeur de copie et/ou un opérateur d'affectation.
Marsh Posté le 10-06-2008 à 10:58:19
Bonjour,
j'ai un petit probleme dans mon passage par référence dans une fonctionne puisque les parametres modifiés dans la fonction ne sont pas répercutés a la sortie de celle ci.
j'ai la fonction suivante (pas tres bien programmé mais bon c'est le début) :
et je l'appelle comme cela :
dans la fonction (en mode debug) toutes les variables sont modifiés avec les bonnes valeurs.
par contre quand je sors de ma fonction toujours en mode debug mes vecteurs n'ont plus la meme taille et surtout ont des valeurs comme 0 ou -1163005939
j'utilise visual express c++ 2008 sous windows XP.
est ce que j'ai rien compris au passage par référence ou c'est juste une petite erreure quelque part ? (ou peut etre une erreure du compilo mais je pense plutot pour une erreur de ma part vu mon niveau !)