リストの正しい順序に要素を挿入する挿入関数を実装しようとしています。イテレータは何の理由もありません。C++
としての私の入力が行く:私は、リストの先頭に私のイテレータのポイントを作ることから始め、その後、各オブジェクトを反復処理
J Y Z
:
b.insert('Z');
b.insert('J');
b.insert('Y');
とすべき出力として私はそれを入力する正しい場所を見つけるまで、私は理由を理解していませんが、私は反復で始めると、それはループに入った後に先に飛びます。このため
class list < node<T>* >::iterator itr = bt->level().begin();
cout << "itr now: " << (*itr)->getItem() << endl;
while (itr != bt->level().end()) {
cout << "itr now: " << (*itr)->getItem() << " and " << elem << endl;
// do a bunch of other stuff
++itr;
}
私の出力は次のようになります。
itr now: Z
itr now: Z and J
itr now: J
itr now: J and Y
ではなく、それは
itr now: Z
itr now: Z and J
itr now: J
itr now: Z and Y
として出てくるこの問題を引き起こして厥起こっていただきましSomoneのは、私に言うことができますか?
問題を[SSCCE](http://sscce.org/)に減らしてください。 'elem'とは何ですか? '/ /他のものを束ねる'とは何ですか? 2行目はどのようにして再び到達するのですか?このコードは、これらの重要な質問のいずれにも答えません。 – Mankarse
@MankarseはOPにコピー/ペーストするにはあまりにも多くのコードをtheres。 '//たくさんの他のものをする'は、 'itr-> getItem()'と比較してアイテムがどこに合っているかをほとんどチェックし、それを 'insert'でそのエリアに挿入します。ループに入る前に 'J'を表示しているので、その部分のどこにでも問題はないと思いますが、一度入力すると' Z'が返されます。 – SNpn
私は恐れますが、投稿しないと助けません完全な例。 –