我用vector的实现(程序复杂了点,结果正确)
#include
#include
#include
#include
using namespace std;
struct DATA
{
int num;
int count;
} ;
typedef vector V_DATA;
class data_finder
{
public:
data_finder(const int val):m_data(val) {}
bool operator ()(const V_DATA::value_type &value)
{
return value.num == m_data;
}
private:
int m_data;
};
int main()
{
int d,i,n;
DATA t_d;
V_DATA data;
V_DATA::iterator it=data.end();
cin>>n;
for(i=0; i
{
cin >> d;
t_d.count=1;
t_d.num=d;
it=find_if(data.begin(),data.end(),data_finder(d));
if (it == data.end())
data.push_back(t_d);
else
{
it->count++;
t_d.count=it->count;
}
}
int max_ct=0;
for(it = data.begin(); it !=data.end(); it++ )
{
if (it->count>max_ct)
max_ct=it->count;
}
for(it = data.begin(); it !=data.end(); it++ )
{
if (it->count==max_ct)
cout << it->num <
}
return 0;
}