今天发现了一个问题,
比如
vector<int>vt[100];
对100个容器进行push操作,然后求vt[i].size()的最大值。
开始我是
int maxn=-1;
for(int i=0;i<100;i++)
if(maxn<vt[i].size())
maxn=vt[i].size();
printf("%d\n",maxn);
这就有问题了,不管咋样答案都是-1,
这是为什么呢?
原因就在于vt[i].size()返回值是size_t类型,是unsigned,比较的时候会按照unsigned比,而-1
的unsigned值是最大整数(对于一定字节)所以不管咋样if判断都是false,
解决犯法就是maxn初始化为0。
真心在这个小问题上二了很久,希望mark下,不要下次范