Java中的指针、矢量和迭代器

Pointer, Vector and Iterator in Java

本文关键字:迭代器 指针 Java      更新时间:2023-10-16

我有一些关于向量、指针和迭代器的C++代码。但我不确定代码是做什么的。我想,它使用迭代器进行迭代,以获取或检查每个向量值,然后当值内部向量仍然没有结束或有下一个值时,它将创建一个向量名称v,其中填充了来自d的指针。这是对的吗?现在,我想把这些代码转换成java代码,尤其是java Android。到目前为止,我已经转换到WHILE部分。我不知道如何转换节,用指针创建新的矢量。你能帮我吗?非常感谢。

C++代码:

size_t count = contours_hull[i].size();
if( count < 300 )
   continue;
vector<Vec4i>::iterator d =defects[i].begin();
while( d!=defects[i].end() ) {
    Vec4i& v=(*d); //this line, i can't convert.
//another code
}

我做的Java代码:

for(int i = 0; i < contours_hull.size(); i++) // I added this line, because in java "continue" cannot use in outside loop, so i make loop here.
{
    int count = contours_hull.size();
    if (count < 300) continue;
    List<MatOfInt4> defect = new ArrayList<MatOfInt4>();
    Iterator d =  defect.iterator();
    while (d.hasNext)
    {
        //the line "Vec4i& v=(*d);" that i can't convert
    }
}

这样改造他们是对的吗?对于尚未转换的代码,我应该写些什么?有人能帮我吗???

这只是一个尊重运算符。它相当于Java代码中的ListIterator.next()。考虑到C++代码将其存储为引用,它基本上是相同的。