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

c++ - キーと値のペアのファイルを std::map に読み込む

キーと値のペアのファイルを std::map に読み込みたい Visual Studio 2008 C++03 プロジェクトがあります。istreambuf_pair_iteratorそのために、以下のように作成しました。

ファイルから読み取った文字列から作成したらstd::pair<>、それをどこに保存して、に挿入できるようstd::inserterにしstd::mapますか?

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

c++ - C ++:boost :: unordered_mapを反復しようとすると、operator<に一致しません

私は次のコードを持っています:

コンパイルしようとすると、次のエラーが発生しますが、理由がわかりません。

0 投票する
0 に答える
260 参照

c++ - 自然言語処理で boost::iterator_range を使用する

私の問題は、自然言語処理 (NLP) と入力文字列の論理グループへのチャンクに関連しています。

物事を単純化するために、私が持っているのはトークンデータ構造のベクトルであり、それぞれに「タグ」文字列値が含まれています。

また、ベクター内の各トークンから取得した「タグ」値の連結文字列を次のように形成します。

上記の pos_tags の例では、2 つの一致するチャンクが存在するように、JJ (形容詞) と NN (名詞) インスタンスのみのチャンクを形成することに関心があります。

「JJ NN NN」、「JJ NN」

各正規表現の一致が入力トークン セット (input_tokens) 内のトークンの範囲を表すように、pos_tags 文字列に対して一種の正規表現を実行することは可能ですか? つまり、形成される各チャンクは文字列ではなく、開始/終了イテレータによって表されます。

理想的には、見つかった一致を boost::iterator_range のベクトルとして保存したいと思います。各範囲は、見つかった各チャンクの開始/終了を表します。次のようになります。

これが理にかなっていることを願っています。必ずしも完全なコードを探しているわけではありませんが、この方法で正規表現を使用する方法についてのヒント (私は初心者です)。

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

stl - stl と boost を使用して 2 つのベクトルをタプルのベクトルに変換する

私は持っている

私は取得したいです

これは私がこれまでに持っているものです

さらに進む方法がわかりません。1 つの方法は、 http: //www.boost.org/doc/libs/1_52_0/libs/iterator/doc/zip_iterator.html#examples で zip_func としてファンクターを作成することですが、余分なコードを書きたくないので、ラムダを使いたい 何かご意見は?

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

c++ - コンテナ定義全体を入力せずにイテレータの型名を参照する効率的な方法は?

入力するよりもコンテナのイテレータの型名を参照する効率的な方法はありますか

イテレータが必要になるたびに?

もちろん、あります

しかし、すべてのコンテナに typedef を導入しても、非常に読みやすいコードとは思えません。C++ の初心者であり、通常、使用したいコンテナーへの参照があると仮定すると、次の行に沿って何かがありますか?

または私が見逃している他の明らかなショートカットはありますか?

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

c++ - カスタム コンテナのカスタム イテレータ

1D 配列 (テンプレート) として表されるグリッドであるコンテナーを設計しています。ここにコードの抜粋を投稿していますが、実際にはもっと多くのコードがあります。これは、各セルが世界の小さな領域を表すロボット アプリケーションのローリング占有グリッドとして使用されます。

私がそのグリッドで頻繁に行う操作の 1 つは、すべてのセルを調べて、それらのワールド座標も取得することです。

これらすべてを格納するイテレータが必要です: セル、その rc 座標、およびその xy 座標。

オンラインの多数の回答とチュートリアルに続いて、次の実装を思いつきました。しかし、私には少し不器用に思えます。学術的な理由から、見栄えを良くしたいと考えています。また、STL互換性は素晴らしいでしょう。

そして、私のグリッドクラスで:

繰り返しますが、これは機能しますが、少しぎこちなく感じます (反復子コードのコメントを参照)。どうすれば改善できるか知りたいです。ブースト イテレータ ファサードまたはアダプタの使用に関する多数の投稿を見ましたが、それを自分のケースに適応させる方法がわかりませんでした。

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

c++ - なぜブースト filter_iterator には奇妙な make_filter_iterator 関数があるのですか?

少し苦労した後、ブーストfilter_iteratorのこの最小限の例をハックすることができました

それはうまく機能しますが、なぜmake_filter_iteratorがかかるのだろうかnumbers.end()? そのように使用するのは間違っているかもしれません.C配列の例から推測しました:
http://www.boost.org/doc/libs/1_53_0/libs/iterator/example/filter_iterator_example.cpp

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

c++ - ブーストを使用してメンバーアクセスでコピーする方法

As withのコンテナがあります

コンテナーは反復子を提供し、この例ではそれが std::vector であると想定できます。そう:

ここで、A::f によって提供される値を 2 番目のコンテナーにコピーします。

単純に反復することもできましたが、演習として、ブーストバインド/ブーストイテレータでこれを解決しようとしました。これまでに試したことは次のとおりです。

これを行う方法を知っている人はいますか?

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

c++ - マップのindirect_iterator>>

map<T, shared_ptr<U>>その「削除」のイテレータshared_ptr、つまりへの逆参照を実装しようとしていますpair<T, U&>。ラッパーmapを範囲ベースのforループに適合させるためにこれが必要です。

boost::indirect_iteratorそのようなニーズのために設計されたもののようです。私はこれを試しました:

indirect_iteratorこれは要件のために機能しません:

式*v(vはiterator_traits :: value_typeのオブジェクト)は、有効な式であり、参照に変換可能である必要があります。

boost::indirect_iteratorこのタスクに使用することは可能ですか?いいえの場合、私はこれを行うことができboost::iterator_adaptorますか?

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

c++ - const_iteratorを使用してC++クラスを公開する方法

Boost.Pythonを使用してサードパーティのC++APIを公開しています。

私がやってきたヘッダーファイルは、反復可能なクラス(hasbeginendmethods)と、反復を実行するためのカスタムイテレータークラスを宣言します。-

これらから派生した最小限のラッパークラスを作成しました:-

そしてBoost.Python宣言:-

ここでの唯一の奇妙な点は、const_iteratortypedefの使用です。これはBoost.Pythonイテレータのドキュメントで説明されており、私が収集したものから、必要なのはのテンプレートパラメータのconst修飾子だけです。iteratorすなわち

ただし、Linuxx86_64でGCC4.7.2を使用すると、次のコンパイラエラーが発生します。-

そのような反復可能なクラスをどのように公開する必要がありますか?

乾杯、アレックス