int numberOfArithmeticSlices(vector<int>& nums) {
//当传入的 nums = {1} 时;
cout << "nums.size()= " << nums.size() << endl;
cout << "nums.size()-2 = " << nums.size()-2 << endl; //当结果计算<0 时 这个数很大 4294967295 ,导致下列循环很大,具体原因如下:
int n_lenth = nums.size();
cout << n_lenth -2 << endl;
for(int j = 0 ; j < n_lenth - 2;j++){
cout << "j= " << j << endl;
}
for(int i = 0 ; i < nums.size() - 2;i++){ // 此时,nums.size()-2 为一个很大的值 4294967295
if(i > 3)
break;
cout << "i= " << i << endl;
}
return 0;
}
查看 STL 的源码
原文:https://www.cnblogs.com/hkkeryu/p/15126188.html