【发布时间】:2013-01-27 18:49:20
【问题描述】:
我的问题如下:我使用了一个迭代器,我想将每个元素与下一个元素进行比较。原型如下所示,如何增加迭代器才能进行比较? 另外,我怎样才能为这种情况的发生设置适当的条件?我的意思是如何指向最后一个元素,而不是像 end() 函数一样指向最后一个元素:
std::vector<T>::const_iterator it;
std::vector<T>::const_iterator it2;
for (it = set.begin(), it != set.end(); it++)
{
// some things happen
if ( final == it )
{
if ( it != set.end()-1 ) // how to write properly condition?
{
it2 = it + 1; //how to assign the next here?
if (...)//some condition
{
if ( it->func1() - it2->func1()) < 20 ) //actual comparison of two consecutive element values
// do something
}
}
}
}
【问题讨论】:
-
您试图用这些多个迭代器解决什么问题?
-
我到现在只使用一个迭代器(这只是代码的一部分)。我希望能够比较集合中两个连续的 func1。所以我需要一个指向实际的迭代器,一个指向下一个的迭代器。有更好的方法吗?我可能在这里做了一些矫枉过正,请纠正我
-
对于
set.end()-1,使用set.rbegin()