問題タブ [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.
python - Pythonでイテラブルの長さを取得する組み込みの方法はありますか?
たとえば、Python のファイルは反復可能です。ファイル内の行を反復処理します。行数を数えたい。
1 つの簡単な方法は、これを行うことです。
ただし、これはファイル全体を (一度に) メモリにロードします。これはむしろイテレータの目的を無効にします (現在の行をメモリに保持する必要があるだけです)。
これは機能しません:
ジェネレーターには長さがありません。
カウント関数を定義する以外にこれを行う方法はありますか?
明確にするために、ファイル全体を読み取る必要があることを理解しています! 一度にすべてをメモリに入れたくありません
.net - ジェネレータを使用してツリー構造を反復する方法は?
すべての子孫の葉 (直接または間接) を返すツリー ノードに関数を実装する方法を理解しようとしています。ただし、リーフノードが再帰的に配置されるコンテナーを渡したくありません (ツリーが巨大になる可能性があります)。代わりに、ジェネレーターを使用してツリーを反復処理したいと考えています。いくつかのアプローチを試しましたが、これまでのところどれもうまくいきませんでした。これは、私が考えられる解決策に最も近いものです:
しかし、これも機能していません。私は何を間違っていますか?同じ関数にyieldステートメントがある場合、.EnumerateLeavesを再帰的に呼び出すことはできません。
どんな助けでも大歓迎です。前もって感謝します。
編集:ブランチは葉または枝のいずれかを子として持つことができるため、再帰があることを忘れていました。
c++ - stl データ構造から reverse_iterator を消去するにはどうすればよいですか?
何らかの理由で、次のコードは失敗します。base() メソッドを使用して reverse_iterator を単純に消去することはできません。
上記を正しく行うにはどうすればよいですか?消去したいものに対応する reverse_iterator が与えられた場合、どのように消去しますか?
残念ながら、erase は reverse_iterators を取りません。それは本物が欲しい。
delphi - コンテナー コントロールのすべてのコントロールを取得する方法はありますか?
たくさんのコントロールを含むフォームがあり、特定のパネルのすべてのコントロールを反復処理して、それらを有効/無効にしたいと考えていました。
私はこれを試しました:
しかし、それは何もしませんでした。すべてのコンポーネントは、親オブジェクトではなく、フォームのコンポーネント コレクションにあることがわかります。コントロール内のすべてのコントロールを取得する方法があるかどうか、誰かが知っていますか? (このような醜い回避策に加えて、これは私がしなければならなかったことです):
誰か良い方法を教えてください...
c++ - テンプレート化されたクラスの変数からベクトル反復子を返すにはどうすればよいですか?
テンプレート化されたクラスのベクトルの反復子を返そうとしています (それが違いを生むかどうかはわかりませんが、その可能性があることを読んだので、言及したいと思いました)。問題は、これを試してみると、C++ が default-int をサポートしていないというエラーが表示されることです。私はオンラインで見てきましたが、フォーラムや説明で見ることができるものから、私はそれほど遠くないとは思いません.コンパイルできません.
私が得るエラーは次のとおりです。
編集:
終了山括弧を変更して、互いに接近しないようにしました-同じエラー。
なぜこれが起こっているのかについて何か考えはありますか?
いつものように、事前にアドバイス/ヘルプをありがとう!
c# - カスタム IEnumerator の記述イテレータで
IEnumerator<T>
いくつかの状態を維持する必要があり、それを単純化するために反復子ブロックを使用する必要があるカスタム実装を作成するにはどうすればよいですか? 私が思いつくことができる最高のものは、次のようなものです:
c++ - イテレータが有効かどうかを確認する方法はありますか?
たとえば、コンテナ マップを操作する 2 つのスレッドの場合、(パフォーマンス上の理由から) イテレータがまだ有効かどうかをテストする正しい方法は何ですか?
または、これを行うことができる唯一の間接的な方法になります。このサンプルコード:
c# - C# で双方向列挙子を実装する
IEnumerator<T>
yield ブロックを使用して、後方 ( ) と前方に移動できるを実装する方法はありMoveLast()
ますか?
perl - Perlでサブルーチン参照の配列を反復/逆参照するにはどうすればよいですか?
サブルーチンrefの配列を反復処理する方法を理解しようとしています。
この構文の何が問題になっていますか?
前もって感謝します!