如果在某种情况下某个vector的size为0,然后size-1按理说应该是-1,但是这时候会出问题的,因为一个有符号数一个无符号数,相减,都是先转化为usigned再去运算
这样如果用cout<<size-1;输出的就是一个快越界的数字。如果用printf%d则输出的就是-1;
好可恶的bug。需要注意啊
本文揭示了在C++中,当vector的size为0时,进行size-1操作可能导致的越界输出问题。通过深入分析,解释了为何使用`cout<<size-1;`和`printf%d`输出结果不同,并提供解决方案。
如果在某种情况下某个vector的size为0,然后size-1按理说应该是-1,但是这时候会出问题的,因为一个有符号数一个无符号数,相减,都是先转化为usigned再去运算
这样如果用cout<<size-1;输出的就是一个快越界的数字。如果用printf%d则输出的就是-1;
好可恶的bug。需要注意啊
745
473
1555

被折叠的 条评论
为什么被折叠?