問題タブ [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 に答える
3610 参照

c++ - イテレータをマップに配置できないのはなぜですか?

私はこのように定義された地図を持っています

そして「mHugeString」という名前の巨大な文字列。次に、次のように文字列収集イテレータをたどります。

最後に、イテレータがある種のキーに関連付けられているマップを受け取る必要があります。しかし、イテレータは、文字列の終わりのどこかを指していない限り、「make_pair」によってキーとペアリングされると、どういうわけか自分自身を失います。わかりにくいですが、おそらく最後の256バイトで問題ありません。

したがって、問題はイテレータの紛失を回避する方法ではなく、とにかくそれらを格納するのは愚かな考えでしたが、文字列の先頭にイテレータを格納しようとすると失敗し、最後のイテレータでも同じことがうまくいくのはなぜですか?それらの違いは何ですか?

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

php - PHP RecursiveIteratorIterator とネストされたセット

階層内に一連のオブジェクトがあります。最上位の「ルート」ノードがあり、子ノードがあり、子ノードなどがあります。ネストされたセットモデルを使用して、この構造をDBに保存しようとしています。各ノードの各「側」は定義するために番号が付けられていますMySQL での階層データの管理のように、階層:

代替テキスト
(ソース: mysql.com )

私の問題は、左右の値を計算することです。私は通常、RecursiveIteratorIterator を使用して階層を反復処理しますが、参照によってインデックス変数を解析する再帰関数に頼らずに数値を計算する方法を見つけることはできません。

何か案は?

おそらく役に立たないでしょうが、これは私が現在持っている(間違った)コードです:

ご覧のとおり、次のようになります。

次の左右の値:

それらがいつあるべきか:

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

recursion - 再帰を伴わない複合パターン反復子

再帰を使わずに複合 (ツリー) 構造のイテレータを書いたり考えたりした人はいますか? もしそうなら、あなたのアイデアを共有できますか?ありがとう

編集:Java for langを考えていました。

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

c# - C# で IEnumerables をチェーンしますか?

s の順序付けられたリストを取得し、最初のすべての要素、次に 2 番目などのすべての要素を順番に生成IEnumerableするシングルを返す簡単な組み込みの方法はありますか。IEnumerable

もちろん、自分で書くこともできますが、この一見便利なタスクを実行する前に、それを実行する方法が既にあるかどうかを知りたかったのです。

0 投票する
10 に答える
72542 参照

c++ - std::map に値が存在することを確認する - C++

findメソッドがstd::mapで提供されたキーを見つけ、要素にイテレータを返すことを知っています。とにかく値を見つけて、要素へのイテレータを取得する方法はありますか? 私がする必要があるのは、指定された値が std::map に存在することを確認することです。マップ内のすべてのアイテムをループして比較することでこれを行いました。しかし、これに対するより良いアプローチがあるかどうかを知りたかったのです。

ここに私が書いたものがあります

編集

値、キーの組み合わせを格納する別のマップを内部で使用するのはどうですか。だから私はそれでfindを呼び出すことができますか?std::map のfind()は順次検索を行っていますか?

ありがとう

0 投票する
7 に答える
6066 参照

java - ハッシュマップ内のすべての MATCHING キーを効率的に反復しますか?

HashMap百万ものエントリがあります。

キーが特定の一連の基準に一致するすべてのエントリを取得する必要があります (この場合、各キーは 2 つの整数プロパティを持つオブジェクトです。これらの整数のそれぞれが指定された範囲内にあるすべてのキーを取得する必要があります)。

そのようなすべてのキーを反復処理する最も高速で効率的な方法は何ですか?

更新: この特定のケースでは、事前に指定しませんでしたが、キーの最初の整数が 2 番目の整数より自然に優先されます。

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

php - 別の Iterator の結果から新しい Iterator を作成する

PHP 5 で Iterators を効果的に使用する方法を理解しようとしていますが、ネット上に適切な例がたくさんないため、少し難しいことがわかりました。

ディレクトリをループして、その中のすべての (php) ファイルを読み取って、定義されたクラスを検索しようとしています。次にやりたいことは、クラス名をキーとして、ファイル パスを値として返す連想配列を作成することです。

RecursiveDirectoryIterator() を使用することで、ディレクトリを再帰的に処理できます。これを RecursiveIteratorIterator に渡すことで、ディレクトリの内容を 1 次元イテレータとして取得できます。次に、これにフィルターを使用することで、すべてのディレクトリと、考慮したいファイルだけを残す非phpファイルをフィルターで除外できます。

私が今やりたいことは、この反復子を別の反復子に渡すことができるようにすることです (どちらが適切かはわかりません)。これにより、各エントリをループするときに、マスター配列に結合する必要がある配列を取得できます。

説明が少し複雑なので、コード例を次に示します。

この例からわかるように、私は FilterIterator の accept() メソッドをハイジャックしています。これは私が知っている完全に間違った使用法ですが、1 つの関数を呼び出す方法を示すための例としてのみ使用しています。 、マスター配列にマージされた配列を返すようにします。

現時点では、RecursionIterator の 1 つを使用する必要があると考えていますが、これは RecursionIterator の機能のように思われるためですが、2 つの異なるメソッド (hasChildren() と getChildren() を使用するという考えは好きではありません) )) 目標を達成する。

要するに、オブジェクトの 1 次元配列 (?) を渡すために使用 (または拡張) できる Iterator を特定し、結果の配列をマスター配列に結合してそれを返すようにしようとしています。 .

これには他にもいくつかの方法があることに気づきました。たとえば、次のようなものです。

しかし、これはイテレータを使用する目的に反しており、ソリューションとしてもあまりエレガントではありません。

とにかく、私はそれを十分に説明したことを願っています。ここまで読んでくれてありがとう、そして事前に答えてくれてありがとう:)

0 投票する
14 に答える
16723 参照

c# - C# またはスライディング ウィンドウ列挙子でのペアワイズ反復

次のような IEnumerable がある場合:

連続する項目のすべてのペア (サイズ 2 のスライディング ウィンドウ) をループしたいと思います。どれだろう

私の解決策はこれでした

このコードを書いたとき、ペアだけでなく任意のサイズのタプルに対して同じことを行う関数が .NET フレームワークに既にあるのではないかと考えました。私見は、この種のスライディングウィンドウ操作を行うための良い方法があるはずです。

私は C# 2.0 を使用しており、C# 3.0 (LINQ を使用) を使用すると、これを行うためのより多くの (そしてより良い) 方法があると想像できますが、主に C# 2.0 ソリューションに興味があります。ただし、C# 3.0 ソリューションも高く評価します。

0 投票する
5 に答える
9829 参照

c++ - ベクトル、反復子、および std::find

異なるベクトルで異なるタイプの反復子を使用する方法はありますか? または、ベクトル内の要素の位置を整数として返す関数はありますか?

それはいくつかのサンプルコードです。誰かポインターを持っていますか?