c ++使用迭代器引用连续值

时间:2012-12-10 13:22:37

标签: c++ loops iterator

我想迭代地计算w的值,即两点之间的距离。在我的 Aclass 中,我有 x,y w 等成员。所以我使用Pitagoras定理,但如何使用迭代器顺利完成?这是我的尝试,但我不知道如何使用迭代器引用“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);
            }

1 个答案:

答案 0 :(得分: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;
}