size()方法返回的是一个unsigned类型的数值,所以,如果再循环中,使用i<size()-n这种判断条件的时候,一定要注意,如果size()返回的值,小于n。此时做减法,会返回一个很大的数字,因为,unsigned没有负数,所以会从最大值继续往下减。所以,一定要先转成int在减n。i<static_cast(size())-n
C++ for循环中使用size()方法的一个坑。
最新推荐文章于 2022-06-20 11:22:04 发布
size()方法返回的是一个unsigned类型的数值,所以,如果再循环中,使用i<size()-n这种判断条件的时候,一定要注意,如果size()返回的值,小于n。此时做减法,会返回一个很大的数字,因为,unsigned没有负数,所以会从最大值继续往下减。所以,一定要先转成int在减n。i<static_cast(size())-n