In fact every time those question found quite the same answer because in all case, whatever you want count, it can be really easy to do with C++ and STL. If we use the std::map class we can do that in 2 loop.
First, imagine we have a list containing random number.
srand(time(NULL));
std::vector list;
int N = 1 , M = 100;
for (int i = 0; i < M; ++i)
{
int rnd = M + rand() / (RAND_MAX / (N - M + 1) + 1);
list.push_back(rnd);
}
Ok, so now we have 100 number with some redundancy, let's count that with a map.
std::map histo;
for (auto rnd : list)
{
histo[rnd] += 1;
}
And it's done !, nothing else .... Just a loop to display the result:
for(auto var = begin(histo) ; var != end(histo) ; ++var)
{
std::cout << var->first << " have " << var->second << " occurence " << std::endl;
}
Simple and efficient
Aucun commentaire :
Enregistrer un commentaire