- 數組{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;
}
}