問題タブ [istream-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 投票する
1 に答える
91 参照

c++ - CGAL の istream_iterator

お恥ずかしい話ですが、しばらくCGALを使っていませんでした。CGAL のConvex_hull_2/convex_hull_yz.cppの例で、cmd によるリダイレクトではなく、ファイルから入力を取得しようとしています./convex_hull_yz < convex_hull_yz.cin。コードは次のとおりです。

そして、ここにrefがあります。だから明らかに私の試みはうまくいきません:

関連する質問:ファイルを 1 行ずつ反復できる C++ イテレータはありますか? 、わかりましたが、CGALに接続できません。アイデアはありますか?

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

c++ - 左辺値 istringstream istream_iterator に必要?

Visual Studio でastring fooを指定すると、次のようにして単語を a に分割できますvector

しかし、これは gcc 5.1 ではコンパイルできません。エラーが発生します:

型の右辺値からの型std::istream_iterator<std::basic_string<char> >::istream_type&{aka }の非 const 参照の無効な初期化std::basic_istream<char>&std::basic_istream<char>

gccにバグがあり、私たち自身のJonathan Wakelyによって修正されたことがわかりました。istringstreamこれはそのバグの拡張ですか、それともここで Rvalue を使用することは違法ですか?

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

c++ - すべてのリストが入力されているのはなぜですか

したがって、定義が与えられた場合:

の抽出演算子を作成しましたTache:

ただし、この抽出演算子をメンバーで使用しようとするとistream_iteratorprecedentTask次の要素に出血しているようです。たとえば、次のようになります。

Live Example

私は得ています:

A 3
B 4 A
C 2 AA
E 5 AAA
G 3 AAAA
J 8 AAAABH
H 7 AAAABHCEG
I 6 AAAABHCEGG
F 5 AAAABHCEGGH

私の予想ではなく:

A 3
B 4 A
C 2 A
E 5 A
G 3 A
J 8 BH
H 7 CEG
I 6 G
F 5 H

を誤用していsregex_token_iteratorますか?

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

c++ - istream_iterator がゼロ初期化しない

これは最小限で、完全で、検証可能な例です。とにかく、構造体を考えると:

私は次のことができます:

ただし、これにより結果が得られます。

-1215720516 1
2 1
2 3
4 3
4 5
6 5
6 7
8 7
8 9
0 9

をゼロ初期化するFooには、次のコードを記述できます。

これにより、m に期待される結果が得られます。

0 1
2 0
0 3
4 0
0 5
6 0
0 7
8 0
0 9
0 0

変数を完全に上書きしない抽出演算子を持つことは大雑把であることを理解しています。これは最初、ここでの私の回答ここでの私の質問に由来しています。私の考えでは、読み取りの合間に変数をゼロ初期化するというより自然な期待がありました。いずれにせよ、変数が読み取り間でゼロ初期化されるように使用することは可能ですか、それとも-loop を使用する必要がありますか?istream_iteratorfor

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

c++ - ストリームをリセットせずに istream_iterator を使用するにはどうすればよいですか?

私はこの答えを書きました: https://stackoverflow.com/a/40181583/2642059これは、istream_iterator<int>含まれているループがヘッダーを読み取った後、整数を読み取るためにを使用します。したがって、テキストは次のようにフォーマットされます。

HR0
012312010
001230202

HR1
012031020
012320102
012323222
012321010

HR2
321020202

私はそのテキストを持っています: istringstream input. を使用して整数を読み取れるようにしたいのですがistream_iterator<int>(input)、非が見つかるまで読み取ってからint 、不良ビットを に設定しinputます。

istream_iterator<int>それを回避する方法はありますか、それとも読書を終えるたびに悪いビットをクリアする必要がありますか?

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

c++ - 任意終了の設定 istream_iterator

istream_iteratorデフォルト構築以外のエンディングを設定することはできますか?

ユースケースの 1 つはvector<int>、 から最初の 13 要素で を初期化することistream_iterator<int>です。vector<int>{ istream_iterator<int>(cin), x)ここxで、 は からちょうど 13 要素離れた反復子ですistream_iterator<int>(cin)

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

c++ - C++では、前進すると「現在の」要素が無効になるイテレータインタフェースを実装しても問題ありませんか?

ユーザーがファイルからデコードされたオブジェクトを反復処理できるようにする C++ インターフェイスを設計しています。このデコード処理はやや遅いです。

これにはイテレータインターフェースを考えているのですが、不要なコピーは避けたいので(ユーザー側)以下を考えています。

object前の使用例の は、反復子インスタンスの内部にあるオブジェクトへの参照です。

これは間違っていますか?ここで他にどの慣用的なインターフェースを提案しますか?

ストリーム インターフェイスについて考えましたが (考えてみてstd::istreamください)、データを読み取るメソッドもコピーを返します (文字を抽出します)。

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

c++ - istream_iterator がストリームから大量に消費する

stdin から次の入力を取得します。

最初の行はキューの数を表します (この値を と呼びましょうn)。次に、各キューの最初の行にlキューの長さを示す値があり、その後に実際のキューが続きます。

istream_iterator次のようにを使用して、キューをベクトルに入れようとしています。

このコードは、次の出力を生成します。

ご覧のとおり、最初のキューは正しく読み取られています。しかし、2 番目はではなくlであるべきです。52

に何が起こってい5ますか? イテレータによって消費されますか?どこでエラーをしましたか?

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

c++ - 後で使用するために istream の位置を保存する

istream イテレータを保存するコードを以下に記述しました。私が望むのは、後で指定された位置の文字列にコピーするためにイテレータを保持することです。ストリームを最初にリセットするまで、これは正常に機能します。出力は "teet" bis 私が欲しかった "tees" です。イテレータをストリームの位置から独立させる方法はありますか?