問題タブ [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.
c++ - リストの_first_要素を削除すると`.rend()`が無効になるのはなぜですか?
XCode4.6を使用してMacOSXでテストされています。
このサンプルコードは、std::list
期待どおりに作品の最後の要素を削除することを示しています。へのイテレータ参照list::end()
は「最後から1つ」であり、最後の要素を削除しても有効です。
しかし、2番目の例は私の直感に反しています。リストの最初の要素を削除すると、「最初から1つ過ぎた」と思った変更が変更されます。list::rend()
私の期待は間違っていましたか?なぜそれが間違っていたのですか?最後の要素を削除して「最後から1つ」への参照が有効なままであるのに(そうではないのですか?)、.rend()
前の要素を削除すると「先頭()の前の1」への参照が無効になるのはなぜですか?
c++ - 演算子 != は std::reverse_iterator c++ に対してあいまいです
逆反復機能を取得するために std::reverse_iterator<> で使用している独自の反復子を実装するコンテナーに取り組んでいます。逆イテレータを rend または rbegin に割り当てることができますが、その機能 (!= または == など) にアクセスしようとすると、次のようになります。
私のイテレータ演算子のオーバーロード:
そして逆イテレータの私の実装
およびイテレータ typedef:
演算子の使用方法
および iterator クラス (const_iterator は同じものですが、const value_type を使用します)
そしてツリークラス:
c++ - C++ 11では、「強化されたforループ」を使用して標準コンテナを逆に反復する方法は?
以下は、「強化された for ループ」を使用したfor forward ループの例です。std::deque
特定のSTLコンテナに対して逆に反復する「強化されたforループ」の正しい構文(可能な場合)は何ですか?
c++ - 文字列クラスにreverse_iteratorを実装します(rbegin()およびrend()メソッドも)
以下は、私の String クラスのコードです。reverse_iterator と rbegin() および rend() メソッドを実装したいと考えています。assignメソッドのコードを貼り付けました。String::reverse_iterator rbegin = str2.rbegin(); String::reverse_iterator rend = str2.rend(); for(String::reverse_iterator b = rbegin; b!= rend; ++b) { cout<<*b; }
c++ - Map C++ 逆反復子
it
->ガベージキー値を指します
it++
-> 正しいキー値を指す
it
-> 最初から正しいキー値を指します。
手伝ってください。
c++ - C++ rbegin reverse_iterator のアドレスを変更
私はこのコードでC ++に奇妙な問題があります:
rQueue
逆の順序で反復するキューですrQueue
いつでもメッセージを受け取ることができますlast
6 行目で受信メッセージの再処理を避けるためにイテレータを追加しました8 行目では、メッセージを出力した位置を保持し、最後のメッセージよりも新しいメッセージのみを出力したいと考えています。
私の問題: 反復が終了し、新しいメッセージがキューに追加されると、 iterator の値
last
が変更され、 iterator の値と同じになるrstart
ため、新しく到着したメッセージは 6 行目に出力されません。
last = rQueue.rbegin()
キューのロックを解除した後に新しい要素を受け取ると、値が変更される理由がわかりません。
ありがとう。