请问vector<int> vec大小的问题?

代码如下:
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

你的 vector 容器里没有任何值,所以长度是0,再减去一之后就是-1 。而你又说了,vec.size()返回无符号整形,所以不会出现-1(-1是有一个负号的)
所以程序会出现溢出的错误,应该是返回 unsigned int 的最大值,就是 4294967295
而int 是默认有符号的
不懂再问,希望采纳一下,谢谢!

vector.size 返回值就是 size_t
而size_t定义就是 typedef unsigned int size_t