出于某种原因,在此功能中重要的地方的两个或两个以上相同的值的“块体”:迭代器操作不工作
#include <iostream>
#include <iterator>
#include <set>
int countClumps(multiset<int> set)
{
int clumps = 0;
for (multiset<int>::const_iterator iter(set.begin()), end(set.end()); iter != end; ++iter)
{
if (iter == iter[1] && iter != iter[-1])
{
clumps += 1;
}
}
return clumps;
}
我得到的错误“不操作‘[]’相匹配,这些操作数” 。为什么会发生?我认为像iter [i]和*(iter + i)这样的东西是标准操作?我确实尝试*(iter + 1),但是这给了我相同的操作数错误,但是+。有没有我忘记包含的东西?
这有助于吨,谢谢!事实上,在比较数值之后,我尝试过比较方向,因为那只是我走错了方向。 – BaloneyOs
@BaloneyOs另请参阅我的答案中的示范程序。:) –