【发布时间】:2013-05-02 13:10:22
【问题描述】:
我有一个包含 24.000 个元素的大向量,例如:
(1,1,1,1,3,3,3,3,3,3,5,5,5,...etc)
我想检查一行中有多少相同的元素,例如: 4-6-3..等 我使用此代码:
static int counter=1;
vector<int>numbers;
for(int n=0;n<numbers.size()-1;n++)
{
if(numbers[n]==numbers[n+1])
{
counter++;
}
else if(numbers[n]!=numbers[n+1])
{
cout<<counter<<endl;
counter=1;
}
}
有没有比这更快的算法?
【问题讨论】:
-
向量排序了吗?
-
您可以删除第二个 if() 语句,并且应该关心最后一个元素
-
@SonicpathSonicwave 是一个包含 {1, 2, 3, 1} 可能输入的向量?
-
@stefan 是的
-
是的,我知道我总是手动检查最后一个元素不知道如何在代码中做到这一点