我只是不明白.第二个if语句被评估为true.您可以在图像中看到调试信息.如果我k在if语句中使用它,它的行为与我期望的一样.为什么是这样?谢谢.
size()返回std::vector<int>::size_type由C++标准保证为unsigned类型的类型.
两种unsigned类型之间的区别本身unsigned.您遇到了常见的环绕行为,最终值大于2.
在你的情况下,你应该重构highers.size() >= 2 + lowers.size().除非你真的知道自己在做什么,否则千万不要使用减法unsigned类型.