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

python - Python の re.findall/re.finditer (反復正規表現の結果) に相当する Perl はありますか?

Python でコンパイルされた正規表現パターンには、次のことを行うfindallメソッドがあります。

文字列のリストとして、文字列内のパターンの重複しない一致をすべて返します。文字列は左から右にスキャンされ、見つかった順序で一致が返されます。パターンに 1 つ以上のグループが存在する場合は、グループのリストを返します。パターンに複数のグループがある場合、これはタプルのリストになります。空の一致は、別の一致の先頭に触れない限り、結果に含まれます。

Perlでこれを行う標準的な方法は何ですか? 私が考えることができる素朴なアルゴリズムは、「検索と空の文字列への置換が成功している間、[スイート]を実行する」という行に沿っています。もっと良い方法があることを願っています。:-)

前もって感謝します!

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

c++ - エラー: long int から非スカラー型への変換、反復子と null の比較

こんにちは、誰かがこの問題を説明できることを願っています。これはコードです:

};

そして、私がした後:

そして、次のエラーが表示されます。

イテレータを NULL に初期化する問題はどこにありますか?

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

c++ - eof()サイクルでイテレータを使用したC++トークン化

私はこの答えを適応させようとしています

C ++で文字列をトークン化するにはどうすればよいですか?

ファイルからeofまでの読み取りを含む私の現在の文字列の問題に。

このソースファイルから:

トークン化されたすべての単語を含むベクトルを作成したいと思います。例:vector<string> allTheText[0] should be "Fix"

目的はわかりませんがistream_iterator<std::string> end;、元のポスターの回答にあったので含めました。

これまでのところ、私はこの機能しないコードを持っています:

編集:

コードをに変更しました

そしてRuntimeErrorを取得しました、なぜですか?

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

c++ - このトークン化プロセスを変更して、複数行のテキストファイルで機能するようにするにはどうすればよいですか?

私はこのソースコードを使っています:

単一の行をトークン化してベクトル結果に入れる代わりに、このテキストファイルから取得した行のグループをトークン化し、結果の単語を単一のベクトルに入れます。

これまでのところ、私は私が使用する必要があることだけを明確にしています

ループを実行します。

しかし、私はこれがうまくいくとは思わない:

while(getline(streamOfText、readTextLine)){cout << readTextLine << endl;

//文字列からストリームを作成しますstd::stringstream strstr(readTextLine);

//ストリームイテレータを使用して、空白で区切られた文字列としてストリームをベクトルにコピーしますstd :: istream_iterator it(strstr); std :: istream_iterator end; std :: vector results(it、end);

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

c++ - C++ の反復子に対するキー/値機能

この質問が以前にもさまざまな形で出てきたことは知っていますが、これは少し異なります。

std::map を含むクラスがあります。クラス内の他の目的でマップを使用したいのですが、外部的にはイテレータ アダプタをマップ内の値 (つまり、std::pair の 2 番目の項目) だけに公開したいと考えています。

たとえば、Python では次のようにします。

クラス内に実装を隠して、C ++でこれを行うにはどうすればよいですか?

ありがとう、

ダン

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

java - 2 次元 Java 配列の反復処理

エッジを反復する があるところまではすべて理解しています。そこでは一体何が起きているのでしょうか。

e[0]編集: なぜ と を使用してアクセスするのe[1]ですか? e[0]最初の番号と2番目の番号e[1]ですか。

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

c# - コレクションを返すメソッドは、C# の foreach ステートメントのすべての反復で呼び出されますか?

今日の朝、いくつかの C# コードを使用していましたが、次のようなものがありました。

したがって、言語フレームワークを完全に理解していないので、反復が行われるたびに GetDataTable() が呼び出されるのか、それとも 1 回だけ呼び出されて結果のデータ (行になる) が保存されるのかを知りたいと思います。ループするメモリ。いずれにせよ、新しいコレクションを宣言して保存し、そこから作業しました...

新しい変数を追加したので、代わりに次のようにしました。

しかし、これが必要かどうかはよくわかりません。

前もって感謝します。

0 投票する
4 に答える
6400 参照

java - Map を反復処理する際に許可される基本的な操作は何ですか?

Java で Map を繰り返し処理しているとします...その Map を繰り返し処理しているときに、その Map に対して何ができるかわかりません。私は、Javadoc の Iterator インターフェイス remove メソッドの次の警告にほとんど混乱していると思います。

[...] このメソッドを呼び出す以外の方法で反復の進行中に基になるコレクションが変更された場合、反復子の動作は規定されていません。

remove メソッドを問題なく呼び出せることは確かです。しかし、Map コレクションを繰り返し処理しているときに、次のことができますか?

  1. キーに関連付けられた値を Map クラスの put メソッド (既存のキーで put) で変更しますか?

  2. Mapクラスのputメソッド(新しいキーでput)で新規エントリ追加?

  3. Map クラスの remove メソッドでエントリを削除しますか?

私の推測では、おそらく安全に #1 (既存のキーに配置) を実行できますが、#2 または #3 を安全に実行することはできません。

これについて明確にしていただきありがとうございます。

0 投票する
6 に答える
9785 参照

c# - 一度に2つの配列を反復する方法は?

テキスト ファイルの解析中に 2 つの配列を作成しました。1 番目には列名が含まれ、2 番目には現在の行の値が含まれます。マップを作成するには、両方のリストを一度に反復処理する必要があります。現在、私は次のものを持っています:

これは問題なく機能しますが、私のエレガントな感覚を完全には満足させません。また、配列の数が 2 つよりも多い場合 (私は時々そうしなければなりません)、非常に面倒になります。誰かが別の簡潔なイディオムを持っていますか?

0 投票する
6 に答える
7164 参照

java - 反復中のセットの変更 java

私は再帰的な方法を反復的にしようとしています。

繰り返し処理したいオブジェクトのリストがあり、それらのサブオブジェクトをチェックします。

再帰的:

こんな感じに変えたい

擬似コードが貧弱で申し訳ありませんが、基本的には、チェックするリストの最後に新しいオブジェクトを追加しながら、サブオブジェクトを反復処理したいと考えています。

リストを使用してこれを行うことができ、次のようなことができます

しかし、重複するサブオブジェクトを追加したくありません。もちろん、追加する前に list.contains(each subObject) かどうかを確認することもできます。

しかし、私は Set を使用してそのクリーナーを実現したいと考えています。

したがって、基本的には、繰り返し処理中にセットに追加する方法がありますか、それとも手動で .contains() をチェックするのではなく、リストをセットのように動作させる簡単な方法はありますか?

コメントをお待ちしております。

ありがとう