vector deque应用

编程入门 行业动态 更新时间:2024-10-25 12:22:44

<a href=https://www.elefans.com/category/jswz/34/1762381.html style=vector deque应用"/>

vector deque应用

实现:用vector 和deque容器实现一个简单打分案例
规则:有5名选手:选手ABCDE,10个评委分别对每一名选手打分,
去除最高分,去除中最低分,取平均分。

#include<iostream>
#include<deque>
#include<vector>
#include<algorithm>
#include<string>
using namespace std;//1. 创建五名选手,放到vector中 
//2. 遍历vector容器,取出来每一个选手,执行for循环,
//可以把10个评分 打分存到deque容器中  
//3. sort算法对deque容器中分数排序,pop_back pop_front去除最高和最 低分  
//4. deque容器遍历一遍,累加分数,累加分数/d.size()  class Player {
public:Player() {}Player(string name, int score) :mname(name), mscore(score) {}
public:string mname;int   mscore;
};
//创建选手
void create_Player(vector<Player>& v) {string nameSeed = "ABCDE";for (int i = 0; i < size(nameSeed); i++) {Player p;p.mname = "选手";p.mname += nameSeed[i];p.mscore = 0;v.push_back(p);}}
//打分
void set_Score(vector<Player>& v) {for (vector<Player>::iterator it = v.begin(); it != v.end(); it++) {//当前学生deque<int> de;//打分for (int i = 0; i < 10; i++) {int  scoreDe = rand() % 41 + 60;de.push_front(scoreDe);}sort(de.begin(),de.end());de.pop_front();//去掉最小,最高分de.pop_front();////平均分int total = 0;for (deque<int>::iterator itt = de.begin(); itt != de.end();itt++) {total += (*itt);}float average= total / de.size();//保存分数(*it).mscore = average;}
}
bool cmp(Player& p1, Player& p2) {return p1.mscore > p2.mscore;
}//排名
void print_Rank(vector<Player>& v) {//sort(v.begin(), v.end(), cmp);//for (vector<Player>::iterator it = v.begin(); it != v.end(); it++) {cout << "选手:" << (*it).mname << "得分:" <<(*it).mscore<< endl;;}
}int main() {//定义vector保存选手信息vector<Player> pp;create_Player(pp);set_Score(pp);print_Rank(pp);return 0;
}

更多推荐

vector deque应用

本文发布于:2023-07-28 17:00:11,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1256723.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:vector   deque

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!