请看一下这个简单的程序:
#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,但它输出“更大”这一事实让我感到困惑。我知道该size
方法返回无符号值,但比较仍适用于 -1 和 0。那么发生了什么?谁能解释一下?