問題タブ [boost-iterators]

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 投票する
1 に答える
557 参照

c++ - iterator_traits でのネストされたポインター型の使用は何ですか?

クラス テンプレートは、std::iterator_traitsネストされた 5 つの型を定義します: iterator_category、、、および。libc++ と libstdc++ の両方のヘッダーのソースを参照すると、との多くの使用が見られますが、 (内部)の場合は 1 つだけで、の場合はありません。value_typedifference_typepointerreference<algorithm>value_typedifference_typeiterator_categoryreferencestd::iter_swappointer

私のアプリケーションは、手作りのプロキシ イテレータとプロキシ参照のペアを使用しています。iterator_facade参照型をデフォルトから任意の型に構成できるBoostの使用に移行したいのですが、デフォルトT&のポインタ型にはそうではありませんT*pointerネストされた型の奥深くに隠された使用法に噛まれるのを避けたいです。

operator->: イテレータは、ネストされたメンバーのない組み込み型のプロキシであるため、 (戻り値の型が となる) との互換性は必要ありませんpointer

質問: 標準ライブラリには、ネストされた型のpointer内部にどのようなユース ケースがありiterator_traitsますか?

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

c++ - 任意のイテレータをランダム アクセス イテレータに変換するアダプタ

ランダム アクセス イテレータを提供しないコンテナーがあり、そのようなイテレーターの入力を受け取り、コンテナーにランダム アクセス イテレーター インターフェイスを提供するアダプターを作成することが目標です。

少し紛らわしいので、使い方がわかりませんboost::iterator_facade:-/スタックオーバーフローの例がいくつかありますが、それらの使い方がわかりません( here )

リンク/例は役に立ちます。boost(私の経験を考えると、それらは消化するのが少し難しいですの例を読みましたboost

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

c++ - C++ で遅延ジェネレーターを forward_iterator として実装する

MyGenerator は、(おそらく) 整数の有限シーケンスを表し、計算コストが高くなります。したがって、それらをすべて事前に生成してコンテナーに入れたくありません。

それらをすべて印刷するには:

forward_iterator のプロトコルに従う同様のジェネレーターを実装する方法は?

boost::function_input_iteratorは近づいていますが、事前に要素数がわかりません。

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

c++ - boost::range::detail::any_iterator が boost::zip_iterator とうまく連携しない

次のコードを検討してください。

最適化なしでコンパイルすると期待どおりに動作します (つまり、"1 a\n2 b..." を出力します) が、-O2 (clang-3.6.0 と gcc-4.9.2 の両方を使用) でコンパイルすると、セグメンテーション違反が発生するか、ガベージが生成されます。ブースト 1.56.0) で、何が問題なのかわかりません。

また、IntCharIterator ラッパーが削除されると、コードはどちらの最適化レベルでも期待どおりに機能します。

ここで何が起こっているか知っている人はいますか?

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

c++ - boost:type_erasure と boost::iterator_facade の間の競合

この非常に単純なプログラムを考えてみましょう:

これはコンパイルに失敗します:

それらのヘッダーファイルを変更したくありません。この問題を回避するにはどうすればよいですか?

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

c++ - {} は、反復子 (コンテナの std::end() を表す) を期待する関数に渡す有効な引数ですか?

ブースト directory_iterator の例では、再帰的ではないディレクトリ ファイルを一覧表示する方法(この回答を参照) がサンプル コードです。

(pはタイプboost::filesystem::pathです。)

のドキュメントmake_iterator_rangeを見ると、呼び出されているコンストラクターは次のとおりだと思います。

私が正しければ、上記のコード例で渡された 2 番目の引数 は{}directory_iterator.

これは今まで見たことがありません。

end空のイニシャライザリストからそのようなイテレータを値構築するだけで、イテレータを構築することは可能{}ですか? (私はこれを適切に表現していますか?)

そのように構築されたイテレータの型が最初のイテレータ ( ) の型と一致しなければならないことを考えると、内部で何が起こっているかを誰かに詳しく説明してもらってもかまいませんdirectory_iterator(p)。(ここでテンプレートの引数の推定が行われていますか?)

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

boost - ブースト イテレータを使用したカスタム イテレータ

私は次のようなカスタムデータ構造を持っています:

これらの API を実装する必要があります。ブースト反復子ライブラリを使用してこれらを実装するにはどうすればよいですか?

また、フィルタリングを可能にするために述語を取る必要があるかもしれません

開始するためのいくつかのポインターは非常に役立ちます。明確化の 1 つ: c++98 のみを使用する必要があるため、c++0x コンパイラ フラグは使用できません。したがって、c++11 または c++03 コンパイラ フラグを必要としないソリューションを提案してください。

また、(GraphDM クラスにネストされた) 次のような反復子を設計すると、基本的にデータ構造の詳細が公開されます。イテレータをマップのキー (値ではなく) でのみ反復するようにする方法はありますか? 次に、getFanins() と getFanout() に対して異なるタイプのイテレータを返すことができます。これは、値リストのイテレータになります。