我想遍歷排序列表以獲取不同數字的數量。迭代排序列表並計數不同的數字
請在下面找到我的嘗試。列表的大小是k*k
。 當列表被排序時,我會比較連續的項目來識別重複項目。
int count_distinct(list<int> v)
{
int num = k*k;
std::list<int>::iterator it;
it = v.begin();
for (int a=0; a<k*k-1; a++)
{
if(*it == *it+1)
num--;
it++;
}
return num;
}
我不能改變的列表,所以std::list::unique()
是不是一種選擇。製作一份清單或獨特物品的副本太慢,對我來說很有用。
'K +'?你確定嗎? – melpomene
'for(const auto num:v)'迭代列表。然後使用'std :: map'作爲結果,並在'num'索引處計算'int'。 –
輸入列表是否已排序? – melpomene