2

我想迭代地计算 w 的值,即两点之间的距离。在我的Aclass 中,我有像x、y和这个w这样的成员。所以我使用了 Pitagoras Theorem,但是如何使用迭代器顺利完成呢?这是我的尝试,但我不知道如何使用迭代器引用来引用“previous than pointed”值。请帮忙 :)

Aclass temp;
for (ars::cClassC::iterator it = New_Diff.begin(); it != New_Diff.end(); it++)
            {
            temp.w = sqrt(((it->getX()-(it->getX()-1))^2+((it->getY()-(it->getY()-1)));
            New_Diff.push_back(temp);
            }
4

1 回答 1

3

只需保存前一个元素:

ars::cClassC::iterator it_prev = New_Diff.end();
for (ars::cClassC::iterator it = New_Diff.begin(); it != New_Diff.end(); it++) {
  if (it_prev != New_Diff.end()) {
     //do the stuff here, now you have the two elements
  }
  it_prev = it;
}
于 2012-12-10T13:25:58.287 回答