由于某种原因,在这个函数中它计算两个或更多相同值的“clumps”:
#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;
}
我收到错误“no operator'[]'匹配这些操作数”。为什么会这样?我认为像iter [i]和*(iter + i)这样的东西是标准操作?我确实试过*(iter + 1)但是这给了我相同的操作数错误但是+。有没有我忘记包括的东西?