【发布时间】:2013-11-25 14:54:32
【问题描述】:
我正在尝试使用迭代器创建一组循环,但我遇到了一些迭代器算术问题(我认为这是可能的,但不起作用)。
下面是一些代码:
for (list<Term>::iterator itr = final.begin(); itr != final.end(); itr++) {
for(list<Term>::iterator j = itr + 1; j != final.end(); j++) {
cout << itr->term << " " << j->term;
if(itr->term == j->term) {
//Do stuff
}
}
}
我想要做的是让 j 从 itr 开始从队列中的下一个位置开始。这样做的原因是我不想检查第一个项目本身。错误本身来自我指定itr + 1 的代码部分。现在我确信使用指针可以进行这样的算术运算,为什么它不能与列表迭代器一起使用(本质上是一样的?)
我从 IDE 得到的错误如下:main.cpp:237:48: error: no match for ‘operator+’ in ‘itr + 1’。我再次认为您可以对迭代器进行这种算术运算,所以我不确定该怎么做才能使这项工作正常进行,是否可以尝试其他实现?
【问题讨论】: