C++ 比较大小

C++语言 码拜 8年前 (2016-06-07) 1768次浏览
如下:
vector<int>   _vecTest;
_vecTest.push_back(10);
_vecTest.push_back(11);
int   aaa = -1;
bool   _bMaxMin  = (aaa >= _vecTest.size());
如上, _bMaxMin  值为  true;
Why????????
解决方案

10

_vecTest.size() 是无符号整数值,你int -1首先会转换成 无符号数,然后再比较
-1 转为无符号数会变得很大,你要这样子比较就得相似
bool   _bMaxMin  = (aaa >= (int)_vecTest.size()); //强制转换下

20

size_type size() const;
Member type size_type is an unsigned integral type.
http://www.cplusplus.com/reference/vector/vector/size/
所以需要强转成int再比较

bool   _bMaxMin = (aaa >= (int)_vecTest.size());

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C++ 比较大小
喜欢 (0)
[1034331897@qq.com]
分享 (0)