如何使用迭代器?

我正在尝试计算两点之间的距离。我在C ++中将两个点存储在向量中:(0,0)和(1,1)。


我应该得到结果


0

1.4

1.4

0

但是我得到的实际结果是


0

1

-1

0

我认为在向量中使用迭代器的方式存在问题。我该如何解决这个问题?


我在下面发布了代码。


typedef struct point {

    float x;

    float y;

} point;


float distance(point *p1, point *p2)

{

    return sqrt((p1->x - p2->x)*(p1->x - p2->x) +

                (p1->y - p2->y)*(p1->y - p2->y));

}


int main()

{

    vector <point> po;

    point p1; p1.x = 0; p1.y = 0;

    point p2; p2.x = 1; p2.y = 1;

    po.push_back(p1);

    po.push_back(p2);


    vector <point>::iterator ii;

    vector <point>::iterator jj;

    for (ii = po.begin(); ii != po.end(); ii++)

    {

        for (jj = po.begin(); jj != po.end(); jj++)

        {

            cout << distance(ii,jj) << " ";

        }

    }

    return 0;

}


潇湘沐
浏览 415回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP