出於某種原因,在此功能中重要的地方的兩個或兩個以上相同的值的「塊體」:迭代器操作不工作
#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另請參閱我的答案中的示範程序。:) –