#include<iostream>
#include<vector>
using namespace std;
int main()
{
int k = 7;
vector<int>cardPoints = {9,7,7,9,7,7,9 };
for (int i = cardPoints.size()-1; i >= cardPoints.size() - k; i--)
cout << i << endl;
}
<這是今天刷LeetCode的時候遇到的一個情況愣是卡了我一個小時沒找到原因>
cardPoints.size()=7,k=7,所以for回圈的回圈判斷條件為i>=0,但如果你運行的時候會發現,i根本停不下來。
我以為是是cardPoints.size() - k運算式沒有括起來的原因:
for (int i = cardPoints.size()-1; i >= (cardPoints.size() - k); i--)
但改后依然,根本停不下來。
但你隨便修改一下k的數字,k=6也好,k=8也好,只要cardPoints.size() - k不剛好等于0!!!就沒任何問題。
但一旦cardPoints.size() - k這個運算式等于0的時候,就像沒有判斷條件一樣。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/257230.html
標籤:C++ 語言
上一篇:使用delete釋放new得到的記憶體,但是記憶體并沒有得到釋放
下一篇:獲取瀏覽器URL地址
