次の簡単なプログラムを見てください。
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> a;
std::cout << "vector size " << a.size() << std::endl;
int b = -1;
if (b < a.size())
std::cout << "Less";
else
std::cout << "Greater";
return 0;
}
-1 が 0 未満であることは明らかですが、「Greater」を出力するという事実に混乱しています。size
メソッドが符号なしの値を返すことは理解していますが、比較は -1 と 0 に適用されます。誰でもこれを説明できますか?