私はベクトルが与えられた場所でイテレータを使ってベクトルの最初と最後の数を比較し、次のものに移動して比較します。私はそれを行うためのforループを書いたが、ベクトルの中心に達すると停止させる方法がわからない。 a
が前方イテレータで、b
が後方イテレータであるC++での比較のためにベクトルを反復する
for (a = v.begin(), b = v.rbegin(); a != v.end(), b != v.rend(); a++, b++)
:私は、forループのために
。 私は、forループの条件を変更する必要があると仮定していますが、私は何がわかりません。
あなたは、いくつかの「is_palindrome」関数を意味ですか? – xtofl
少なくとも、&&を使用するように条件を変更する必要があります。 – Iluvatar
あなたのループ条件 'a!= v.end()、b!= v.rend()'は両方の部分式を実行するためにコンマ演算子を使いますが、最初の(a!= v.end() ')は捨てられ、2番目の式の結果だけが使用されます。 「ベクトルの中心に到達する」に関しては、イテレータの代わりに*インデックス*を使用する方が意味があるかもしれません。次に、インデックスがベクトル長の「中間点」を通過するかどうかを確認するのは簡単です。 –