Bonjour, j'ai un souci dans une fonction dont voici un extrait:

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
La comparaison :
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à...