vector实例题
ABCDE五个选手,10个评委分别对每一名选手打分,去除最高分,去除最低分,取平均分
分三个步骤:
1.创建五个选手(vector容器)
2.给五个选手打分(deque容器)
3.显示最后得分
代码:
#include <iostream> using namespace std; #include <vector> #include <string> #include <deque> #include <algorithm> #include <ctime> //设计一个学生类 class Person { public: //构造函数 Person(string name,int aver) { this->m_name = name; this->m_aver = aver; } string m_name; int m_aver; }; //创建五个选手 void CreatePerson(vector<Person>&v) { string PersonN = "ABCDE"; for(int i=0;i<5;i++) { string name = "选手"; name += PersonN[i]; //分别重新命名 int age = 0; Person p(name,age); //析构函数赋值 v.push_back(p); } } void GradePerson(vector<Person>&v) { for(vector<Person>::iterator it = v.begin();it!=v.end();it++) { deque<int> d; //deque容器中间存放评分 for(int i=0;i<10;i++) { int score = rand()%41+60; d.push_back(score); //存入十个随机数 } sort(d.begin(),d.end()); //进行升序排序 d.pop_front(); //删除十个中最低分 d.pop_back(); //删除十个中最高分 int sum = 0; for(deque<int>::iterator its = d.begin();its!=d.end();its++) { sum += (*its); } int aver = sum/d.size(); it->m_aver = aver; } } //打印平均分 void PrintPerson(vector<Person>&v) { for(vector<Person>::iterator it = v.begin();it!=v.end();it++) { cout<<"选手:"<<it->m_name<<" 平均分:"<<it->m_aver<<endl; } } int main() { srand((unsigned int)time(NULL)); //1.创建五个选手 vector<Person> v; CreatePerson(v); //测试 /*for(vector<Person>::iterator it = v.begin();it!=v.end();it++) { cout<<"姓名:"<<it->m_name<<" 年龄:"<<it->m_age<<endl; }*/ //2.给5个选手打分 GradePerson(v); //3.显示平均分 PrintPerson(v); system("pause"); return 0; }