独自のイテレータを作成し、それを使用して配列内の要素を逆にすることになっている学校の課題に問題があります。それが単一のポインターだけだったら、私はそれを管理すると思いますが、これは二重ポインターであり、地獄のように混乱しています...
逆コードは次のとおりです。
void reverse(T start, T end)
{
T temp = start;
while(start < end)
{
*temp = *start;
*start = *end;
*end = *temp;
++start;
--end;
}
}
temp
を指すとstart
、の値とアドレスtemp
が取得されるため、ここに問題がstart
あります。しかし、よく指すstart
とANDは自然に変化します。end
start
temp
私はこれを修正する方法を私の人生で理解することはできません....
メインで行う呼び出しは次のとおりです。
int a[5] = {5, 12, 1, 6, 9};
Itterfunctions<int*> itt;
int *b = a;
itt.reverse(b, b+4);
for (int i = 0; i < 5; i++)
{
cout<<a[i]<<" ";
}