2017-04-11 146 views
-2

所以,我有這種方法來檢查我的隊列數組是否在減少,當我檢查時的問題是如果兩個第一項減少,它表示整個隊列正在減少,但我想它會遍歷整個陣列的每個成員。 遞減意味着每個整數優於下一個整數,直到隊列結束。我的if,else語句是否錯誤?與flag如果else語句帶有標誌C++

template<class T> 
bool queue<T>::isDecreasing() const { 

    bool flag=false; 

    for (size_t i = 0; i < _capacity; i++) { 
     if(elements[i]>elements[i+1]){ 
      flag = true; 
      return flag; 

     }else if(elements[i]<=elements[i+1]){ 
      flag=false; 
      return flag; 
     } 
    } 
    return flag; 
    } 
+0

你知道什麼'return'語句的意思? –

+0

這意味着返回正確的值? – Simo

+0

與你的問題無關,但我確定希望你的數組元素至少有'_capacity + 1'個元素。 –

回答

0

開始到true: 如果減少,我應該布爾返回true,否則應返回false。然後在每次迭代中使用if語句檢查您按降序排列的數組假設。如果不正確,請設置爲false並打破循環。 此外,循環應運行n-1次(n是元素的數量),因爲在每次迭代中,您正在訪問current和下一個元素的值。因此,在第n-1次迭代中,您將訪問倒數第二個和最後一個元素的值。

template<class T> 
bool queue<T>::isDecreasing() const { 

bool flag=true; 

for (size_t i = 0; i < _capacity - 1; i++) { 
    if(elements[i]<=elements[i+1]){ 
     flag=false; 
     break; 
    } 
} 
return flag; 

}

+0

這是非常有幫助 – Simo

+0

很高興我能幫到你 –