【发布时间】:2021-01-18 12:28:57
【问题描述】:
SomeClass* stuff;
int N = 10;
stuff = new SomeClass[N];
Someclass* objectPtrDelete = null;
int i = 0;
for(Someclass* pointer = begin(); pointer != end(); pointer++)
{
if(pointer->getSomeAttr() == randomPointer.getSomeAttr()){
objectPtrDelete = pointer;
break;
}
i++;
}
// Shrinking the C-array with this for loop, shifting left
for (int j = i; j < N-1; j++)
stuff[j] = stuff[j + 1];
能否将最后一个循环转换为Pointer循环,如果可以,如何正确完成?请注意,这些名称是虚构的,即虚构的东西。我已经实现了类似的东西,但是,我想了解如何将最后一个循环转换为执行相同操作的循环指针。
做这个:
for (int j = i; j < N-1; j++)
stuff[j] = stuff[j + 1];
进入一个指针循环。
【问题讨论】:
-
什么是“指针循环”?
-
我不知道,stackoverflow.com/questions/33829566/for-loop-with-pointer-in-c。但是,它是正确的吗?你就是这样做的吗?
-
如果你使用指针而不是索引没有太大的变化。您只需要弄清楚您使用什么作为条件(大概类似于
ptr != a + N并确保您在正文中正确取消引用。 -
@Albin M This int[] a = new int[N] 不是有效的 C++ 记录。
-
我有一个指针数组,
SomeClass* stuff;这是发起的:stuff = new SomeClass[10];
标签: c++ loops for-loop pointers