Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/148.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 常规循环到指针循环的转换,如何实现? SomeClass*东西; int N=10; stuff=新的SomeClass[N]; Someclass*objectPtrDelete=null; int i=0; 对于(Someclass*pointer=begin();pointer!=end();pointer++) { 如果(指针->getSomeAttr()==randomPointer.getSomeAttr()){ objectPtrDelete=指针; 打破 } i++; } //使用此for循环收缩C阵列,向左移动 对于(int j=i;j_C++_Loops_For Loop_Pointers - Fatal编程技术网

C++ 常规循环到指针循环的转换,如何实现? SomeClass*东西; int N=10; stuff=新的SomeClass[N]; Someclass*objectPtrDelete=null; int i=0; 对于(Someclass*pointer=begin();pointer!=end();pointer++) { 如果(指针->getSomeAttr()==randomPointer.getSomeAttr()){ objectPtrDelete=指针; 打破 } i++; } //使用此for循环收缩C阵列,向左移动 对于(int j=i;j

C++ 常规循环到指针循环的转换,如何实现? SomeClass*东西; int N=10; stuff=新的SomeClass[N]; Someclass*objectPtrDelete=null; int i=0; 对于(Someclass*pointer=begin();pointer!=end();pointer++) { 如果(指针->getSomeAttr()==randomPointer.getSomeAttr()){ objectPtrDelete=指针; 打破 } i++; } //使用此for循环收缩C阵列,向左移动 对于(int j=i;j,c++,loops,for-loop,pointers,C++,Loops,For Loop,Pointers,最后一个循环是否可以转换为指针循环?如果可以,如何正确完成?注意,这些名字都是虚构的,即虚构的东西。我已经实现了类似的东西,但是,我想了解如何将最后一个循环转换为执行相同操作的循环指针 这样做: SomeClass* stuff; int N = 10; stuff = new SomeClass[N]; Someclass* objectPtrDelete = null; int i = 0; for(Someclass* pointer = begin(); pointer != end

最后一个循环是否可以转换为指针循环?如果可以,如何正确完成?注意,这些名字都是虚构的,即虚构的东西。我已经实现了类似的东西,但是,我想了解如何将最后一个循环转换为执行相同操作的循环指针

这样做:

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];
for(int j=i;j
进入指针循环。

(编辑以考虑您的更改)

如果我很明白你想要什么

一些类的东西

你可以替换

for(int j=i;j

for(SomeClass*p=stuff+i;p
或轻松管理有关类型的更改:

for (SomeClass * p =  stuff + i; p < stuff + N-1; p++)
    *p = *(p + 1);
for(自动p=stuff+i;p

etc

首先使用此结构(没有结束分号)

<> >在C++中无效。

应该是这样的

int[] a = new int[N]
如果我正确理解了你的问题,你的意思如下

int *a = new int[N];

什么是“指针循环”?我不知道。但是,这是正确的吗?你是这样做的吗?如果你使用指针而不是索引,不会有太大的变化。你只需要知道你使用的是什么条件(大概是代码< PTR!= A+N<代码>,确保你在正文中正确引用。@阿尔宾M这个int []新的INT[N]不是有效的C++记录。我有一个指针数组,<代码> SOCKLASS *;这是初始化的:<代码>东西=新的物理模型〔10〕。
Bruno,请看我的更新。我很抱歉没有早些澄清。@AlbinM我更新了我的答案,只是类型和名称发生了变化。Bruno,这还会缩小数组吗?你的代码很混乱,int j
现在在哪里?@AlbinM你的意思是
缩小数组
?它的大小没有变化,你只需移动元素blad,就可以看到我的更新了因为之前没有澄清,所以进行了逻辑分析。@AlbinM发生了什么变化?@VladfromMoscow只是数组的类型和变量的名称
for (auto p =  stuff + i; p < stuff + N-1; p++)
    *p = *(p + 1);
int[] a = new int[N]
int *a = new int[N];
for ( auto prev = a, next = a + 1; next != a + N; ++next )
{
    *prev++ = *next;
}