最近利用vector的时候,发现vector 的size函数返回类型是unsigned _int64,所以大家使用vector的时候要注意。特别是涉及循环的时候。如下代码进行说明:
std::vector<int> aa;
std::cout << typeid(aa.size()).name() << std::endl;//输出unsigned _int64
unsigned _int64 bb= aa.size() - 1;
std::cout << bb;//输出无穷大,溢出
结果如下:
解释:
因为aa.size()是无符号整型,减去1之后就溢出了,使用的时候一定注意。