#include <iostream>
#include<vector>
#include<algorithm>
#include<time.h>
using namespace std;
class Person
{
public:Person(string name,int score)
{
this->m_name=name;
this->m_score=score;
}
string m_name;
int m_score;
};
void createperson(vector<Person>& v)
{
for(int i=0;i<5;i++)
{
string name="选手";
string nameseed="ABCDE";
name+=nameseed[i];
int score=0;
Person p(name,score);
v.push_back(p);
}
}
//"****************第一种方式
//bool compare(Person&p1,Person&p2)
//{
// return p1.m_score>p2.m_score;
//}
//************************第二种方式*********
class compare1
{
public:
bool operator()(Person&p1,Person&p2)
{
return p1.m_score>p2.m_score;
}
};
void setscore(vector<Person>& v)
{
for(vector<Person>::iterator it =v.begin();it!=v.end();it++)
{
vector<int> sc;
for(int i=0;i<10;i++)
{
int score=rand()%41+60;
sc.push_back(score);
}
sort(sc.begin(),sc.end());
sc.pop_back();
sc.erase(sc.begin());
int sum=0;
for(vector<int>::iterator itt=sc.begin();itt!=sc.end();itt++)
{
sum+=*itt;
}
int arg=sum/sc.size();
it->m_score=arg;
//*max_element(v.begin(), v.end());
}
sort(v.begin(),v.end(),compare1());
}
void show(vector<Person> &v)
{
for(vector<Person>::iterator it=v.begin();it!=v.end();it++)
{
cout<<"姓名:"<<it->m_name<<" "<<"平均分:"<<it->m_score<<endl;
}
vector<Person>::iterator it =v.begin();
cout<<"平均分最高的是"<<it->m_name<<" 分数是:"<<it->m_score<<endl;
}
int main()
{
srand((unsigned int)time(NULL));
vector<Person> v;
sort(v.begin(),v.end(),compare1());
createperson(v);
setscore(v);
show(v);
// vector<Person>::iterator it =v.begin();
// cout<<"平均分最高的是"<<it->m_name<<" 分数是:"<<it->m_score<<endl;
return 0;
}
c++ STL(评委打分案例);初识STL。
于 2022-03-26 14:37:53 首次发布