int のセットに何かを設定しました。長さ 52 の。次のようにサイクルを使用してセットを反復処理しています。
for(iterator A from 1st to 48th element)
for(iterator B from A+1 to 49th element)
for(iterator C from B+1 to 50th element)
for(iterator D from C+1 to 51th element)
for(iterator E from D+1 to 52th element)
{
//save the values from the actual positions in set in array[5]
}
最初にイテレータで作成しようとしましたが、 からイテレータを開始することはできないことに気付きましたposition of another iterator +1
。次に、ポインターを使用して値をジャンプしようとしましたが、最初の値のみを正しく割り当ててから、2 番目などにジャンプできません。
私のコードは次のとおりです。
set<int> tableAll;
for(int i=4; i!=52; ++i)
tableAll.insert(i);
const int * flop1 = & * tableAll.begin();
cout << * flop1 << endl;
flop1++;
cout << * flop1 << endl;
cout
pointer の値をflop1
取得すると 4 になり、それで問題ありませんが、それを増やして再びcout
画面に表示すると、0、次に 49、次に 0、次に 1、次に 0 の代わりに 5、6、7、8、および 9 になります。 .
では、セットを正しく反復処理するにはどうすればよいでしょうか? ポインターを使用すると、イテレーターのソリューションよりも高速になると思います。