タグ付けされた質問 「iterator」

イテレータは、オブジェクト指向のプログラミングパターンであり、コレクションを通過し、物理メモリ内の実際の実装やオブジェクトアドレスに依存しません。これは、ギャングオブフォーの行動設計パターンの1つです。

30
「yield」キーワードは何をしますか?
yieldPython でのキーワードの用途とは何ですか? たとえば、私はこのコードを理解しようとしています1: def _get_child_candidates(self, distance, min_dist, max_dist): if self._leftchild and distance - max_dist < self._median: yield self._leftchild if self._rightchild and distance + max_dist >= self._median: yield self._rightchild そしてこれが呼び出し元です: result, candidates = [], [self] while candidates: node = candidates.pop() distance = node._get_dist(obj) if distance <= max_dist and distance >= min_dist: …

6
2つのリストを並行して反復する方法は?
Pythonには2つのイテラブルがあり、それらをペアで調べたいと思います。 foo = (1, 2, 3) bar = (4, 5, 6) for (f, b) in some_iterator(foo, bar): print "f: ", f, "; b: ", b 結果は次のようになります。 f: 1; b: 4 f: 2; b: 5 f: 3; b: 6 これを行う1つの方法は、インデックスを反復処理することです。 for i in xrange(len(foo)): print "f: ", foo[i], "; b: ", …



6
イテレーターの無効化ルール
C ++コンテナーのイテレーター無効化ルールとは何ですか? できれば要約リスト形式で。 (注:これはStack OverflowのC ++ FAQへのエントリになることを目的としています。このフォームでFAQを提供するという考えを批評したい場合は、これをすべて開始したメタへの投稿がそのための場所になります。回答その質問はC ++チャットルームで監視され、FAQのアイデアはそもそも最初から始まっているため、アイデアを思いついた人があなたの答えを読む可能性は非常に高いです。
543 c++  c++11  iterator  c++17  c++-faq 


8
イテレータをストリームに変換する方法は?
私は、イテレータをストリームに「見る」Iteratorために、Streamまたはより具体的に変換する簡潔な方法を探しています。 パフォーマンス上の理由から、新しいリストではイテレータのコピーを避けたいと思います。 Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Collection<String> copyList = new ArrayList<String>(); sourceIterator.forEachRemaining(copyList::add); Stream<String> targetStream = copyList.stream(); コメントのいくつかの提案に基づいて、私も使用しようとしましたStream.generate: public static void main(String[] args) throws Exception { Iterator<String> sourceIterator = Arrays.asList("A", "B", "C").iterator(); Stream<String> targetStream = Stream.generate(sourceIterator::next); targetStream.forEach(System.out::println); } ただし、NoSuchElementException(の呼び出しがないためhasNext) Exception in thread "main" java.util.NoSuchElementException at java.util.AbstractList$Itr.next(AbstractList.java:364) at Main$$Lambda$1/1175962212.get(Unknown Source) …
468 java  iterator  java-8 



11
ベクトルを降順に並べ替える
使うべきか std::sort(numbers.begin(), numbers.end(), std::greater<int>()); または std::sort(numbers.rbegin(), numbers.rend()); // note: reverse iterators ベクトルを降順に並べ替えるには?どちらのアプローチにもメリットやデメリットはありますか?
310 c++  sorting  stl  vector  iterator 

8
STLスタイルのイテレーターを実装し、一般的な落とし穴を回避する方法は?
STLスタイルのランダムアクセスイテレータを提供するコレクションを作成しました。イテレータの実装例を探していましたが、見つかりませんでした。[]and *演算子のconstオーバーロードの必要性について知っています。イテレータが「STLスタイル」であるための要件は何ですか?また、(もしあれば)回避すべきその他の落とし穴は何ですか? 追加のコンテキスト:これはライブラリ用であり、本当に必要でない限り、ライブラリへの依存関係を導入したくありません。同じコンパイラでC ++ 03とC ++ 11のバイナリ互換性を提供できるように、独自のコレクションを作成します(したがって、おそらく壊れるSTLはありません)。

13
条件に一致するイテラブルから最初のアイテムを取得する
条件に一致するリストから最初のアイテムを取得したいと思います。結果のメソッドがリスト全体を処理しないことが重要です。これは非常に大きくなる可能性があります。たとえば、次の関数で十分です。 def first(the_iterable, condition = lambda x: True): for i in the_iterable: if condition(i): return i この関数は次のように使用できます。 >>> first(range(10)) 0 >>> first(range(10), lambda i: i > 3) 4 ただし、これを実現するための優れた組み込み/ワンライナーを考えることはできません。特に必要がなければ、この関数をコピーしたくありません。条件に一致する最初のアイテムを取得する組み込みの方法はありますか?
303 python  iterator 

12
イテレータをArrayListに変換
与えられIterator<Element>、どのように我々はそれを変換することができますIteratorにArrayList<Element>(またはList<Element>中)の最善かつ迅速なので、我々が使用できることを、可能な方法ArrayListのような、その上の操作get(index)、add(element)など
241 java  list  arraylist  iterator 

6
カスタムイテレータとconst_iteratorsを正しく実装するにはどうすればよいですか?
iteratorおよびconst_iteratorクラスを記述したいカスタムコンテナクラスがあります。 私はこれまでこれをやったことがなく、適切なハウツーを見つけることができませんでした。イテレータの作成に関するガイドラインは何ですか。また、何に注意する必要がありますか? また、コードの重複を避けたいと思います(それを感じてconst_iterator、iterator多くのことを共有します。一方を他方にサブクラス化する必要がありますか?)。 脚注:Boostにはこれを緩和する機能があると確信していますが、多くの愚かな理由のため、ここでは使用できません。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.