【发布时间】:2013-11-18 17:40:39
【问题描述】:
我想知道这段代码的区别:
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;
}
编辑
我已经添加了为什么第二段代码从第二个元素迭代。我正在做的是比较并获得最大值和最小值。我不明白的是为什么他们给我两组不同的价值观?我是不是误会了什么?
【问题讨论】:
-
迭代器是指针的广义抽象。它们本身不会自动循环通过容器。
-
我猜你的意思是让你的第一个代码示例在循环中?
-
第一个例子没有循环,第二个有。
-
@greatwolf 好吧,如果我得到第一个代码 sn-p 正确,它只运行第二个元素并通过从第一个元素到第二个元素进行比较来获得大 n 小
x。那么为什么第二个代码 sn-p 不能以相同的方式工作并得到相同的结果,因为它贯穿向量并将x与每个元素进行比较?
标签: c++ for-loop vector iterator