- 数组{1,1,2,2,4,4,4,4,5,5,6,6,6},问题是找出出现重复次数最多的数,该数组重复出现次数最多的是4,本问题我使用map映射表,通过引入map表,map是STL的一个关联的容器,它提供一对一的数据处理能力,其中第一个关键字,每个关键字只能在map中出现一次,第二个称为该关键字的值,来记录每一个元素出现的次数,然后判断次数的大小,进而找出重复次数最多的元素。
- 程序实例如下,环境是VC6.0:
#include <iostream>
#include <map>
using namespace std;
bool findMostFrequentInArray(int *a,int size,int &val)
{
if(size == 0)
{
return false;
}
map<int,int> m;
for(int i=0;i<size;i++)
{
if(++m[a[i]]>=m[val])
val=a[i];
}
}
int main()
{
int a[]={1,1,2,2,4,4,4,4,5,5,6,6,6};
int val=0;
if(findMostFrequentInArray(a,11,val))
{
cout<<val<<endl;
}
}