Bonjour, j'ai un souci dans une fonction dont voici un extrait:
La comparaison :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 //pop the last element const unsigned int biggestItemIdofLine = rIter->first; std::cout << itemRatingsMatrix.ratings.size() << endl; //affiche 0 (c'est un vector) std::cout << biggestItemIdofLine << endl; //affiche 1658
biggestItemIdofLine > itemRatingsMatrix.ratings.size() - 1
me retourne false....
biggestItemIdofLine > itemRatingsMatrix.ratings.size()
me retourne true
Il me semble que c'est un problème de priorité d'opérateurs...
Je n'explique pas pourquoi
biggestItemIdofLine > itemRatingsMatrix.ratings.size() - 1
s'exécute comme
(biggestItemIdofLine > itemRatingsMatrix.ratings.size() ) - 1
alors que je m'attendrai à
biggestItemIdofLine > ( itemRatingsMatrix.ratings.size() - 1 )
Pourtant si je vérifie sur le net
http://www.intap.net/~drw/cpp/cpp03_05.htm
Il me semble lire que la soustraction a une priorité plus forte que la comparaison?
Je patauge un peu dans le doute là...
Partager