問題タブ [reverse-iterator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
71 参照

c++ - reverse_iterator で最後の要素を消去する

最近、私が維持しているコードで次のことを見つけました。

reverse_iterator を使用して、ループ内のコンテナー (この場合は std::list) から最後の要素を削除しようとします。要点は、正しく動作するように見えますが、そうではありません (無効なイテレータが原因でメモリの破損が発生する場合があります)。なぜでしょうか? そうしないための制限や規則はありますか?

ありがとう。

PSソリューションの改善を防ぐために、私はすでにそれを書き直して機能させました。問題は、上記のコードが正しく機能しない理由です。

0 投票する
1 に答える
362 参照

c++ - マップ/セットイテレータがデクリメント不可とはどういう意味ですか? map.rbegin()->first を機能させるには?

map_of_bit_to_parent のマップの最後の要素を取得しようとしています

しかし、割り当て自体が実行時エラー「 map/set iterator not decrementable 」を引き起こしました

そのような割り当てを行う方法は?

0 投票する
2 に答える
14069 参照

c++ - end() - 1 の代わりに rbegin() を使用するのはなぜですか?

end() - 1 ではなく rbegin() を使用する利点は、STL コンテナーにどのようなものがあるのか​​疑問に思っています。

たとえば、次のようなものを使用する理由は次のとおりです。

それよりも:

0 投票する
2 に答える
459 参照

c++ - イテレータの型がreverse_iteratorかどうかをチェック

fncに引数として渡されたイテレータがreverse_iteratorかどうかを確認する方法はありますか? 使用できる反復子特性関数はありますか?

0 投票する
1 に答える
335 参照

c++ - 順方向反復子と逆方向反復子を使用した C++ マップの消去

このようなテンプレート関数があります

ここで、型名として順方向イテレーターと逆方向イテレーターの両方を渡す必要があります。1 つは順方向イテレーターで、もう 1 つは逆方向イテレーターである 2 つの別個の呼び出し。これを行うにはどうすればよいですか?

0 投票する
2 に答える
2860 参照

c++ - iterator と pop_back を使用したループで特異な iterator エラーが発生しました

以下のコードを与える(名前が付けられているとしましょうdeque.cpp

でコンパイルするとg++ -std=c++11 -o deque deque.cpp、うまく動作します。

-D_GLIBCXX_DEBUGただし、 (でコンパイルするとg++ -std=c++11 -o deque_debug deque.cpp -D_GLIBCXX_DEBUG、以下のエラーが発生します。

2 番目のループ++itが単一のイテレータから構築されているようです。++itしかし、最初のループの後、イテレータは 2 を指しており、pop_back()それを無効にするべきではないと思います。では、なぜエラーが発生するのでしょうか?

注: コードを次のように書き直すことができることはわかっています。

そして、エラーはなくなります。

しかし、エラーコードで正確に何が起こるか知りたいです。(逆イテレータが実際に期待するノードを指しているのではなく、その次のノードを指しているということですか?)


更新: @Barry の回答で質問が解決しました。関連する追加の質問をさせてください:コード

++it無効化されたイテレータで操作する必要がある場所は、間違っていると予想されます。しかし、なぜコードがエラーを引き起こさないのでしょうか?