int main() {
vector<int> cost_sam(3, -1);
cost_sam[0] = 10;
cost_sam[1] = 15;
cost_sam[2] = 20;
cout <<((-1) < (cost_sam.size())) << endl;
cout<<(-1<3<<endl;
return 0;
}
为什么第一cout输出0,而第二个cout输出1,cost_sam.size()应该为3才对啊
因为std::vector::size()返回的是无符号整型,有符号整型与无符号整型比较大小时,有符号整型会被转换为无符号整型,因此-1相当于0xFFFFFFFF
要和-1比较,那么你得写成
std::cout << (-1 < static_cast<int>(cost_same.size())) << std::endl;
cout<<(-1<3<<endl;这是啥语句啊