前言:
眼前姐妹们对“vector的累加算法”可能比较关切,你们都需要剖析一些“vector的累加算法”的相关内容。那么小编同时在网络上网罗了一些有关“vector的累加算法””的相关资讯,希望小伙伴们能喜欢,朋友们快快来了解一下吧!#挑战30天在头条写日记#
1.案例描述
有5名选手,选手ABCDE,10个评委分别对每一名选手打分,去除评委的最高和最低分取平均分
2.实现步骤:创建五名选手,放到vector容器中遍历vector容器,取出来每一个选手,执行for循环,可以把10评分存到deque容器中sort算法对deque容器中分时排序,去除最高和最低deque容器遍历一遍,累计总分获取平均分
#include<iostream>#include <vector>#include <deque>#include<algorithm>using namespace std;class Person {public: string m_Name;//姓名 int m_Score;//平均分 Person(string name, int score) { this->m_Name = name; this->m_Score = score; }};//创建五名选手void createPerson(vector<Person>&v) { string nameSeed = "ABCDE"; for (int i = 0; i < 5; i++) { string name = "选手"; name += nameSeed[i]; int score = 0; Person p(name,score); //将创建的person对象 放入到容器中 v.push_back(p); }}//给选手打分void setScore(vector<Person>& v) { for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) { //将评委的分数,放入到deque容器中 deque<int>d; for (int i = 0; i < 10; i++) { int score = rand() % 41 + 60;//取值为60-100 d.push_back(score); } cout << "选手:" << it->m_Name << " 打分: " << endl; //测试打分 for (deque<int>::iterator dit= d.begin(); dit != d.end(); dit++) { cout << *dit << " "; } cout << endl; //容器排序 sort(d.begin(), d.end()); //去除最高分和最低分 d.pop_back(); d.pop_front(); //取平均分 int sum = 0; for (deque<int>::iterator dit = d.begin(); dit != d.end(); dit++) { sum += (*dit);//累加每个评委的分数 } int avg = sum / d.size(); //将平均分赋值给选手身上 (*it).m_Score = avg; }}//展示最后的分数void showScore(vector<Person>& v) { for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) { cout << "姓名: "<< (*it).m_Name << " 分数:"<< (*it).m_Score << endl; }}int main() { //随机数种子 srand((unsigned int)time(NULL)); //1.创建5名选手 vector<Person> v;//存放选手容器 createPerson(v); //测试 //for (vector<Person>::iterator it = v.begin(); it != v.end(); it++) { //cout << "姓名: "<< (*it).m_Name << " 分数:"<< (*it).m_Score << endl; //} //2.给5名选手打分 setScore(v); //3.显示最后得分 showScore(v); system("pause"); return 0;}
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #vector的累加算法 #protocexe用法