2

C++ イテレーターを使用したコーディングで、イテレーターが指している前の値を取得したい場合は、次のように記述します。

*--Iter

または、次のように括弧を追加する方がよいと思いますか:

*(--Iter)

?

4

4 に答える 4

7

プログラムの正確性に関する限り、それは問題ではありません。しかし、私は常にこれを と表現しています*(--Iter)。なぜなら、これは*--Iter.

于 2010-11-28T23:19:43.383 に答える
0

どちらでも構いません。従う必要があるコーディング標準で推奨されるもの、または個人的に好むものを使用してください。

于 2010-11-28T23:19:10.907 に答える
0

わかりやすくするために後者を使用しますが、どちらも完全に有効で同等です。

注: 混乱が生じた場合に備えて、この構文は前の反復子の値を取得するだけでなく、反復子自体を後方に移動します。あなたが持っているものを変更せずに先行イテレータの値を取得したい場合は、一時的なものが必要です。

于 2010-11-28T23:17:56.897 に答える
0

これらのいずれかが期待どおりに機能したとしても、どちらも読みにくいものです。これは単一のステートメントで行う必要がありますか?

于 2010-11-28T23:18:45.810 に答える