字符串的str.size()和str.length()千万不要和负数做比较

字符串的str.size()和str.length()千万不要和负数做比较

当我刷题做到求一些字符串的最长和最远的字符串时,我把max初始化为INT_MIN,min初始化为INT_MAX,结果只能求出最短的字符串。我一直DEBUG发现if(str.size()>max)一直不执行,我就把max初始化为-1,还是不行,然后初始化为0,终于行了。然后我就在考虑为什么str.size()不能和负数做比较呢,然后我就查找了c++文档。
在这里插入图片描述
str.size()返回的是无符号整数,当无符号整数与有符号整数做比较时,程序默认把符号位看作数值,所以负号被看出了最高位的1,自然就比str.size()大了。

最后强调一下:
字符串的str.size()和str.length()千万不要和负数做比较!!!
字符串的str.size()和str.length()千万不要和负数做比较!!!
字符串的str.size()和str.length()千万不要和负数做比较!!!

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值