質問

でC + 1は、シーケンスに書き込むためのイテレータを使用することができます。最も単純な例は以下のようになります:

vector<int> v;
for (vector<int>::iterator it = v.begin(); it!=v.end(); ++it) {
    *it = 42;
}
後で使用するためにクラスのメンバとしてキープイテレータ -

私はもっと複雑なものを必要としています。 しかし、私は、Javaのイテレータからこの動作を取得する方法を知りません。

すべての?
で、Javaで書き込み可能なイテレータがあります ない場合は、それらをどのような置き換え?

役に立ちましたか?

解決

ListIterator を(これのことができます。 List#listIterator()するによって得ます) add() を持っていますそして、 set() の方法これはあなたがそれぞれ挿入し、現在は反復インデックスにある項目を置き換えることができます。私はJavaでの考えることができるように、そのはるかとしてのみ「書き込み可能なイテレータ」です。

<サブ>わからないことは、私はC ++を知らないので、与えられたC ++コードを正確に置き換えている場合。

しかし

他のヒント

配列は、インデックスによって直接かつ迅速にアクセスできるように、あなたは本当にイテレータオブジェクトを必要としません。そのクラスのメンバー内の配列のインデックスを保存するenoughtではないでしょうか?これは、配列の値を読み書きすることが可能です。

PS:あなたはアレイの自動成長セットでのArrayListを使用しBalusイテレータ・オブジェクト・アプローチを使用するために記載されるように反復子を使用することができます。

より多くのあなたのように見えますが(または多分Listのようないくつかの他のコレクション、)または配列ます。

Setをしたいです また、あなたは自分の内容を可変にすることができます。これは、整数の愚かに見えますが、

あなたの例を続けます
for (MutableInteger i : CollectionOfMInts) i.setTo(42);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top