在使用vector的时候,只要是输入的vector是空的,程序就会崩溃。调试了一下,发现此时 0 < vector.size()-1 这个值为true。然后单拿出来打印了一下发现:
这个时候才反应过来,stl中的.size()函数返回的是unsigned int,这个类型下进行0-1会发生越界,所以变成了一个极大值。
所以以后一定要注意不要使用stl中的.size()做减法这样的操作,如果使用的话先用int来强转一下类型来防止越界。
在使用vector的时候,只要是输入的vector是空的,程序就会崩溃。调试了一下,发现此时 0 < vector.size()-1 这个值为true。然后单拿出来打印了一下发现:
这个时候才反应过来,stl中的.size()函数返回的是unsigned int,这个类型下进行0-1会发生越界,所以变成了一个极大值。
所以以后一定要注意不要使用stl中的.size()做减法这样的操作,如果使用的话先用int来强转一下类型来防止越界。