gpt4 book ai didi

c++ - 对 vector 使用 Iterator 和 for 循环有什么区别

转载 作者:搜寻专家 更新时间:2023-10-31 00:37:25 24 4
gpt4 key购买 nike

我想找出这段代码之间的区别:

Vertices {
int x;
int y;
};

vector<Vertices>point;
Vertices min1,max1;

i = point.begin();

min1.y = i->y;
min1.x = i->x;
max1.x = i->x;

i++;

if(i->x < min1.x)
{
min1.x = i->x;
}
else
{
max1.x = i->x;
}

和这段代码:

min1.y = point[0].y;
min1.x = point[0].x;
max1.x = point[0].x;
for (int i = 1; i < point.size(); i++) {
if (point[i].x < min1.x)
min1.x = point[i].x;
else
max1.x = point[i].x;
}

编辑
我已经添加了为什么第二段代码从第二个元素开始迭代。我正在做的是比较并获得最大值和最小值。我不明白的是,为什么他们要给我两组不同的值?我是不是误会了什么?

最佳答案

第一个区别是在第一种情况下您没有循环。它只处理第一个元素。

第二个区别是,在第二种情况下,当您有第 0 个元素时,您从 1 开始。它处理除第一个元素之外的所有元素。

即使使用迭代器,您也必须有一个循环。使用和不使用迭代器的区别只是为了方便。迭代器只是访问 vector 中元素的不同接口(interface)。

关于c++ - 对 vector 使用 Iterator 和 for 循环有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19829810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com