请教一个简单算法问题
有几个unsigned long long 型数,要找出其中有多少个不同的数。
我是这么做的:
int count = 1;
int tmp;
std::vector <unsigned long long> vid;
std::vector <unsigned long long> ::iterator it = vid.begin();
...//push_back进vid成为一个无序的vector
sort(vid.begin(),vid.end());//排序
for(tmp = *it; it != vid.end(); ++it)
{
if(*it != tmp)
{
count++;
tmp = *it;
}
}
请问有什么问题或者有什么更好的方法吗,比如count_if()算法
[解决办法]
sort加unique
[解决办法]
用hash表也不错