我有一组整数设置一些东西;长度为 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
. 然后我尝试使用指针并跳过这些值,但我只正确分配了第一个值,然后我不能跳到第二个等等。
我的代码是:
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
指针的值时flop1
,我得到 4 并且没关系,但是当我一次又一次地增加它时cout
在屏幕上再次增加它时,我得到 0,然后是 49,然后是 0,然后是 1,然后是 0,而不是 5、6、7、8 和 9 .
那么如何正确地遍历我的集合呢?我假设使用指针会比一些迭代器解决方案更快。