MapPair mapPair; int nombre = count_if (mapPair.begin (), mapPair.end (), IsNotEmpty);
La valeur "pointee" par un iterateur sur une map n'est pas du type que tu penses mais d'une paire cle, valeur stockee (donc dans ton cas std::pair<int, std::pair < bool, std::pair <double, double> > >) Ok, il est plus simple d'ecrire MapPair::value_type...
(Au fait tu sais que tu as ecrit une assignation et pas une comparaison?)
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
MapPair mapPair;
int nombre = count_if (mapPair.begin (), mapPair.end (), IsNotEmpty);
La valeur "pointee" par un iterateur sur une map n'est pas du type que
tu penses mais d'une paire cle, valeur stockee (donc dans ton cas
std::pair<int, std::pair < bool, std::pair <double, double> > >)
Ok, il est plus simple d'ecrire MapPair::value_type...
(Au fait tu sais que tu as ecrit une assignation et pas une
comparaison?)
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
MapPair mapPair; int nombre = count_if (mapPair.begin (), mapPair.end (), IsNotEmpty);
La valeur "pointee" par un iterateur sur une map n'est pas du type que tu penses mais d'une paire cle, valeur stockee (donc dans ton cas std::pair<int, std::pair < bool, std::pair <double, double> > >) Ok, il est plus simple d'ecrire MapPair::value_type...
(Au fait tu sais que tu as ecrit une assignation et pas une comparaison?)
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Stephane Wirtel
bool IsNotEmpty (std::pair <bool, std::pair <double, double> > element) { return element.first = true; } Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
bool IsNotEmpty (std::pair <bool, std::pair <double, double> > element) {
return element.first = true;
}
Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
bool IsNotEmpty (std::pair <bool, std::pair <double, double> > element) { return element.first = true; } Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
MapPair mapPair; int nombre = count_if (mapPair.begin (), mapPair.end (), IsNotEmpty);
La valeur "pointee" par un iterateur sur une map n'est pas du type que tu penses mais d'une paire cle, valeur stockee (donc dans ton cas std::pair<int, std::pair < bool, std::pair <double, double> > >) Ok, il est plus simple d'ecrire MapPair::value_type... Effectivement, en lisant le code de la fonction j'ai pû constater, qu'il lui fallait un iterateur,
donc, dans le mail suivant ma question, j'ai corrigé mon tir et cela fonctionne.
Par contre, peux-tu me dire à quoi correspond :: value_type ? s'agit-il d'un iterator ?
(Au fait tu sais que tu as ecrit une assignation et pas une comparaison?) Oui, il s'agit d'une faute de ma part lors de la rédaction de ce mail, n'ayant pas fait de copier/coller, j'en suis le fautif.
MapPair mapPair;
int nombre = count_if (mapPair.begin (), mapPair.end (), IsNotEmpty);
La valeur "pointee" par un iterateur sur une map n'est pas du type que
tu penses mais d'une paire cle, valeur stockee (donc dans ton cas
std::pair<int, std::pair < bool, std::pair <double, double> > >)
Ok, il est plus simple d'ecrire MapPair::value_type...
Effectivement, en lisant le code de la fonction j'ai pû constater, qu'il lui fallait un iterateur,
donc, dans le mail suivant ma question, j'ai corrigé mon tir et cela fonctionne.
Par contre, peux-tu me dire à quoi correspond :: value_type ? s'agit-il d'un iterator ?
(Au fait tu sais que tu as ecrit une assignation et pas une
comparaison?)
Oui, il s'agit d'une faute de ma part lors de la rédaction de ce mail, n'ayant pas fait de copier/coller, j'en suis le fautif.
MapPair mapPair; int nombre = count_if (mapPair.begin (), mapPair.end (), IsNotEmpty);
La valeur "pointee" par un iterateur sur une map n'est pas du type que tu penses mais d'une paire cle, valeur stockee (donc dans ton cas std::pair<int, std::pair < bool, std::pair <double, double> > >) Ok, il est plus simple d'ecrire MapPair::value_type... Effectivement, en lisant le code de la fonction j'ai pû constater, qu'il lui fallait un iterateur,
donc, dans le mail suivant ma question, j'ai corrigé mon tir et cela fonctionne.
Par contre, peux-tu me dire à quoi correspond :: value_type ? s'agit-il d'un iterator ?
(Au fait tu sais que tu as ecrit une assignation et pas une comparaison?) Oui, il s'agit d'une faute de ma part lors de la rédaction de ce mail, n'ayant pas fait de copier/coller, j'en suis le fautif.
Merci pour la confirmation dans ma solution.
Jean-Marc Bourguet
Stephane Wirtel writes:
Effectivement, en lisant le code de la fonction j'ai pû constater, qu'il lui fallait un iterateur, donc, dans le mail suivant ma question, j'ai corrigé mon tir et cela fonctionne.
Par contre, peux-tu me dire à quoi correspond :: value_type ? s'agit-il d'un iterator ?
Non, du type retourne par l'operateur * sur les iterateurs. C'est le type reellement stocke quand la map.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Effectivement, en lisant le code de la fonction j'ai pû constater,
qu'il lui fallait un iterateur, donc, dans le mail suivant ma
question, j'ai corrigé mon tir et cela fonctionne.
Par contre, peux-tu me dire à quoi correspond :: value_type ?
s'agit-il d'un iterator ?
Non, du type retourne par l'operateur * sur les iterateurs. C'est le
type reellement stocke quand la map.
A+
--
Jean-Marc
FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ
C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html
Site de usenet-fr: http://www.usenet-fr.news.eu.org
Effectivement, en lisant le code de la fonction j'ai pû constater, qu'il lui fallait un iterateur, donc, dans le mail suivant ma question, j'ai corrigé mon tir et cela fonctionne.
Par contre, peux-tu me dire à quoi correspond :: value_type ? s'agit-il d'un iterator ?
Non, du type retourne par l'operateur * sur les iterateurs. C'est le type reellement stocke quand la map.
A+
-- Jean-Marc FAQ de fclc++: http://www.cmla.ens-cachan.fr/~dosreis/C++/FAQ C++ FAQ Lite en VF: http://www.ifrance.com/jlecomte/c++/c++-faq-lite/index.html Site de usenet-fr: http://www.usenet-fr.news.eu.org
Pierre THIERRY
Le Tue, 31 May 2005 13:26:34 +0200, Stephane Wirtel a écrit :
Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
Pour la lisibilité, tu pourrais ici utiliser plus de typedef, y compris, comme déjà dit, ceux déjà définis...
Devoir retaper X fois une aussi longue définition de type, c'est quand même une bonne façon de se pousser à la faute.
Brièvement, Nowhere man --
OpenPGP 0xD9D50D8A
Serge Paccalin
Le mardi 31 mai 2005 à 13:26, Stephane Wirtel a écrit dans fr.comp.lang.c++ :
bool IsNotEmpty (std::pair <bool, std::pair <double, double> > element) { return element.first = true; } Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
C'est normal que tu affectes true à element.second.first ? Si oui, je n'ai rien dit.
Sinon, pourquoi ne pas mettre la constante à gauche du test == pour détecter la coquille à la compilation ? Ou même, dans le cas de bool, pourquoi le comparer à une constante, puisqu'un bool est vrai ou faux en soi ?
-- ___________ 31/05/2005 15:38:30 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Le mardi 31 mai 2005 à 13:26, Stephane Wirtel a écrit dans
fr.comp.lang.c++ :
bool IsNotEmpty (std::pair <bool, std::pair <double, double> > element) {
return element.first = true;
}
Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
C'est normal que tu affectes true à element.second.first ?
Si oui, je n'ai rien dit.
Sinon, pourquoi ne pas mettre la constante à gauche du test == pour
détecter la coquille à la compilation ? Ou même, dans le cas de bool,
pourquoi le comparer à une constante, puisqu'un bool est vrai ou faux en
soi ?
--
___________ 31/05/2005 15:38:30
_/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net
_L_) Il faut donc que les hommes commencent
-'(__) par n'être pas fanatiques pour mériter
_/___(_) la tolérance. -- Voltaire, 1763
Le mardi 31 mai 2005 à 13:26, Stephane Wirtel a écrit dans fr.comp.lang.c++ :
bool IsNotEmpty (std::pair <bool, std::pair <double, double> > element) { return element.first = true; } Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
C'est normal que tu affectes true à element.second.first ? Si oui, je n'ai rien dit.
Sinon, pourquoi ne pas mettre la constante à gauche du test == pour détecter la coquille à la compilation ? Ou même, dans le cas de bool, pourquoi le comparer à une constante, puisqu'un bool est vrai ou faux en soi ?
-- ___________ 31/05/2005 15:38:30 _/ _ _`_`_`_) Serge PACCALIN -- sp ad mailclub.net _L_) Il faut donc que les hommes commencent -'(__) par n'être pas fanatiques pour mériter _/___(_) la tolérance. -- Voltaire, 1763
Stephane Wirtel
Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
Pour la lisibilité, tu pourrais ici utiliser plus de typedef, y compris, comme déjà dit, ceux déjà définis...
typedef pair<double, double> double2; typedef pair<bool, double2> Pair; typedef map<int, Pair> MapPair; Dans le code que j'ai mis à disposition, il ne s'agissait que d'un exemple tiré d'un bout de code que j'ai pondu tout à l'heure.
Le véritable code est bien plus propre que l'exemple montré dans les mails précédents.
Devoir retaper X fois une aussi longue définition de type, c'est quand même une bonne façon de se pousser à la faute.
Brièvement, Nowhere man
Je semble avoir trouvé en allant regarder dans le code de la fonction
count_if.
Pour la lisibilité, tu pourrais ici utiliser plus de typedef, y compris,
comme déjà dit, ceux déjà définis...
typedef pair<double, double> double2;
typedef pair<bool, double2> Pair;
typedef map<int, Pair> MapPair;
Dans le code que j'ai mis à disposition, il ne s'agissait que d'un exemple tiré d'un bout de code que j'ai pondu tout à l'heure.
Le véritable code est bien plus propre que l'exemple montré dans les mails précédents.
Devoir retaper X fois une aussi longue définition de type, c'est quand
même une bonne façon de se pousser à la faute.
Je semble avoir trouvé en allant regarder dans le code de la fonction count_if.
Pour la lisibilité, tu pourrais ici utiliser plus de typedef, y compris, comme déjà dit, ceux déjà définis...
typedef pair<double, double> double2; typedef pair<bool, double2> Pair; typedef map<int, Pair> MapPair; Dans le code que j'ai mis à disposition, il ne s'agissait que d'un exemple tiré d'un bout de code que j'ai pondu tout à l'heure.
Le véritable code est bien plus propre que l'exemple montré dans les mails précédents.
Devoir retaper X fois une aussi longue définition de type, c'est quand même une bonne façon de se pousser à la faute.
Brièvement, Nowhere man
Stephane Wirtel
Le mardi 31 mai 2005 à 13:26, Stephane Wirtel a écrit dans fr.comp.lang.c++ :
C'est normal que tu affectes true à element.second.first ? Oui, en fait,
le std::pair <bool, std::pair <double, double> > correspond à une zone horraire qui permet de savoir si cette zone est libre ou pas, d'où le bool à true pour occupée et à false pour libre.
Si oui, je n'ai rien dit.
Sinon, pourquoi ne pas mettre la constante à gauche du test == pour détecter la coquille à la compilation ? Ou même, dans le cas de bool, pourquoi le comparer à une constante, puisqu'un bool est vrai ou faux en soi ?
Erreur à cause d'une habitude que j'ai ;-) la correction fût vite faite ;-) Merci de la remarque.
Le mardi 31 mai 2005 à 13:26, Stephane Wirtel a écrit dans
fr.comp.lang.c++ :
C'est normal que tu affectes true à element.second.first ?
Oui, en fait,
le std::pair <bool, std::pair <double, double> > correspond à une zone horraire
qui permet de savoir si cette zone est libre ou pas, d'où le bool à true
pour occupée et à false pour libre.
Si oui, je n'ai rien dit.
Sinon, pourquoi ne pas mettre la constante à gauche du test == pour
détecter la coquille à la compilation ? Ou même, dans le cas de bool,
pourquoi le comparer à une constante, puisqu'un bool est vrai ou faux en
soi ?
Erreur à cause d'une habitude que j'ai ;-) la correction fût vite faite ;-)
Merci de la remarque.
C'est normal que tu affectes true à element.second.first ? Oui, en fait,
le std::pair <bool, std::pair <double, double> > correspond à une zone horraire qui permet de savoir si cette zone est libre ou pas, d'où le bool à true pour occupée et à false pour libre.
Si oui, je n'ai rien dit.
Sinon, pourquoi ne pas mettre la constante à gauche du test == pour détecter la coquille à la compilation ? Ou même, dans le cas de bool, pourquoi le comparer à une constante, puisqu'un bool est vrai ou faux en soi ?
Erreur à cause d'une habitude que j'ai ;-) la correction fût vite faite ;-) Merci de la remarque.