代码如下:
vector vec = {};
int i = vec.size() - 1;
cout << i << endl;
cout << vec.size() - 1;
得到的结果上面是-1,下面却是4294967295
请问这是为什么,我的猜想是因为vec.size()是一个无符号型整型
但是我不知道应该如何验证,我用的是VS2017,请问应该怎么查看
这样我下次碰到了可以自己看下
代码如下:
vector vec = {};
int i = vec.size() - 1;
cout << i << endl;
cout << vec.size() - 1;
得到的结果上面是-1,下面却是4294967295
请问这是为什么,我的猜想是因为vec.size()是一个无符号型整型
但是我不知道应该如何验证,我用的是VS2017,请问应该怎么查看
这样我下次碰到了可以自己看下
你说的没错。
-1 对应 0xFFFFFFFF,无符号就是 2的32次方-1,也就是4294967295