問題タブ [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 投票する
2 に答える
229 参照

c++11 - スコープ解決がクラスの外に出ないのはなぜですか?

を使用して双方向イテレータを使用するコンテナ用の汎用リバース ラッパーを作成しようとしていますstd::reverse_iterator

ただし、コンパイラがbegin(...)orを検索すると、候補が 0 の引数を期待しているのに 1 が提供されているためend(...)、一致する関数呼び出しが見つからないと言うようです。reverse_wrapper<CONTAINER>::begin(container)

これは存在しないためだstd::begin(myArray&)と思いました。std::end(myArray&)それらを名前空間に強制してもstd機能しませんでした(とにかくお勧めできません)。std::また、私からプレフィックスを削除しようとしましたreverse_wrapperが、それは機能せず、機能しているstdコンテナーの実装も壊れます。

これはスコープ解決の問題のようですが、修正できないようです。私は何を間違っていますか?

コード:

エラー:

Demo

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

c++ - 変数での reverse_iterator と反復子の抽象化

map条件に応じて、前方または後方を反復するメソッドがあります。操作自体は方向に依存しないため、次のようなことができるようにしたいと考えています。

テンプレート関数を使用してこれを実行できるはずですが (そうですか?)、少しやり過ぎのように思えます。

テンプレートなしで、1 つの関数でそれを行う方法はありますか? 多分使用して<algorithm>

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

python - 逆タプルと逆リストの違いは何ですか?

タプルを反転し、リストを反転すると、異なる型のオブジェクトが返されます。

彼らは同じdirです。どちらの型も他方のサブクラスではありません。

何故ですか?一方ができて他方ができないことは何ですか?

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

c++ - ベクターの使い方::1要素のreverse_iterator

std::vector で poll() を使用しました。リッスンソケットを登録しました。

新しいクライアントソケットまたは接続されたクライアントセッションを追加して、何かをします。

ただし、1 または 2 または 4 のベクトルの要素がある場合、reverse_iterator は正しく機能しません。なぜこれが機能するのかわかりません。

添付のサンプルコード。

結果:

ベクトルが 5 つの要素を持っている場合、正常に動作します。

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

c++ - コレクションの最後から 2 番目のテンプレート。reverse_iterator がコンパイルされない

std::mapイテレータがテンプレートの最後と 2 番目の最後の項目であるかどうかをチェックする 2 つの既存の関数を変換しています。isLastItemテンプレートがコンパイルされますが、理解できないエラー メッセージが表示されて失敗isSecondLastItemします。

エラーの原因となっている1行はtypename T::reverse_iterator secondLastIt = collection.rbegin();

ただし、テンプレート バージョンと非テンプレート バージョンは同じように見えます。

コンパイラ エラー:

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

c++ - C++ の reverse_iterator エラー

ベクトルに reverse_iterator を使用しようとしていますが、明らかにこのコード行が 3 つのエラーを引き起こしています。

エラー:

  1. 「;」が必要です
  2. エラー C2146 構文エラー: ';' がありません 識別子「rit」の前
  3. エラー C2065 'rit': 宣言されていない識別子

Visual Studio 2015 コンソール アプリケーションを使用しています。