造成这个的原因是 C++ string.size的返回值和unsigned int
比如这个没有进行强制转换将unsigned int 转成 int
#includeusing namespace std; int main() { string str = "abcde"; int res = -1; cout << (res < str.size()) << endl; return 0; }
可以看到str的大小应该是比res大的,但是输出的结果确实0而不是1,得到了我们不想看到的结果!!!
这时候我们进行类型强制转换(int)str.size())
#includeusing namespace std; int main() { string str = "abcde"; int res = -1; cout << (res < (int)str.size()) << endl; return 0; }
强制转换成int类型进行比较就可以得到期望的输出了!



