2017-04-11 5 views
-2

したがって、私はキュー配列が減少しているかどうかをチェックするこの方法を持っていますが、最初の2つの項が減少していればキュー全体が減少していますが、配列全体の各メンバーに行きます。 減少は、各整数がキューの最後まで次のキューよりも優れていることを意味します。私のif、else文が間違っていますか? それが減少している場合は、私のブール値はそれ以外の場合はfalseを返す必要があり、trueを返す必要があります。フラグ付きの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

あなたの質問とは無関係ですが、あなたの配列 'elements'に少なくとも_capacity + 1個の要素があることを願っています。 –

答えて

0

スタートtrueflagセットで。次に、各反復チェックで、配列が降順でソートされていると仮定すると、ifステートメントで正しくないかどうかを確認します。間違っている場合は、フラグをfalseに設定してループを解除します。 また、各繰り返しで現在の値と次の要素の値にアクセスしているので、ループはn-1回(nは要素の数です)を実行する必要があります。したがって、n-1番目の反復では、最後の2番目の要素の値にアクセスします。

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

私は助けることができた –