[代码][deque容器练习]打分案例
案例要求:
//打分案例(sort算法排序)
//创建5个选手(姓名、得分),十个评委对五个选手进行打分
//得分规则:去除最高分,去除最低分,取出平均分
//按得分对5个选手进行排名
源代码:
//打分案例(sort算法排序)
//创建5个选手(姓名、得分),十个评委对五个选手进行打分
//得分规则:去除最高分,去除最低分,取出平均分
//按得分对5个选手进行排名 #include<iostream>
#include<vector>
#include<deque>
#include<string>
#include<algorithm>
using namespace std; //选手类
class Player
{
public:
Player(){}
Player(string name,int score):mName(name),mScore(score){}
public:
string mName;
int mScore;
}; //创建选手
void CreatPlayer(vector<Player>& v)
{
string name = "ABCDE";
for (int i = ; i < ; i++)
{
Player p;
p.mName = "选手";
p.mName += name[i];
p.mScore = ;
v.push_back(p);
} } //评委打分
void SetScore(vector<Player>& v)
{
for (vector<Player>::iterator it = v.begin(); it != v.end(); it++)
{
//对选手进行打分
deque<int> dScore;
for (int i = ; i < ; i++)
{
int score = rand() % + ;
dScore.push_back(score);
//dScore[i] = rand() % 41 + 60;
}
//对分数进行排序
sort(dScore.begin(), dScore.end());
//去除最高最低分
dScore.pop_front();
dScore.pop_back();
//求平均分
int total = ;
for (deque<int>::iterator dit = dScore.begin(); dit != dScore.end(); dit++)
{
total += (*dit);
}
int avg = total / dScore.size();
//保存分数
(*it).mScore = avg;
}
}
//排序规则(默认从小到大排序)
bool myCompare(Player& p1, Player& p2)
{
return p1.mScore > p2.mScore;
} //选手排名
void PrintRank(vector<Player>& v)
{
//排序
sort(v.begin(), v.end(), myCompare);
//打印
for (vector<Player>::iterator it = v.begin(); it != v.end(); it++)
{
cout << "姓名:" << (*it).mName << ", 成绩:" << (*it).mScore << endl;
}
cout << endl;
} int main()
{
//定义vector保存选手信息
vector<Player> vPlist;
CreatPlayer(vPlist);
SetScore(vPlist);
PrintRank(vPlist);
return ;
}
运行结果:

[代码][deque容器练习]打分案例的更多相关文章
- C++ STL 之 deque容器 打分案例(内含sort排序用法)
#include <iostream> #include <vector> #include <time.h> #include <deque> #in ...
- deque容器
一.deque容器基本概念 deque是“double-ended queue”的缩写,和vector一样,deque也支持随机存取.vector是单向开口的连续性空间,deque则是一种双向开口的连 ...
- C++进阶 STL(1) 第一天 [容器,算法,迭代器] string容器 vector容器 deque容器
课程大纲 02实现基本原理 容器,算法,迭代器 教室:容器 人:元素 教室对于楼:容器 序列式容器: 容器元素在容器中的位置是由进入容器的时间和地点来决定 序列式容器 关联式容器: 教室中 按年龄排座 ...
- java基础:数组详解以及应用,评委打分案例实现,数组和随机数综合,附练习案列
1.数组 1.1 数组介绍 数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致. 1.2 数组的定义格式 1.2.1 第一种格式 数据类型[] 数组名 示例: int[] arr; ...
- 2.4 C++STL deque容器详解
文章目录 2.4.1 引入 2.4.2 代码示例 2.4.3 代码运行结果 2.4.4 具体案例 总结 2.4.1 引入 deque容器类比vector容器来学习. deque为双向开口容器,见下图. ...
- STL学习系列三:Deque容器
1.Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. deque在接口上和vector非常 ...
- vector,list,deque容器的迭代器简单介绍
我们知道标准库中的容器有vector,list和deque.另外还有slist,只不过它不是标准容器.而谈到容器,我们不得不知道进行容器一切操作的利器---迭代器.而在了解迭代器之前,我们得先知道每个 ...
- STL学习三:deque容器
1.Deque简介 deque是“double-ended queue”的缩写,和vector一样都是STL的容器,deque是双端数组,而vector是单端的. deque在接口上和vector非常 ...
- 带你深入理解STL之Deque容器
在介绍STL的deque的容器之前,我们先来总结一下vector和list的优缺点.vector在内存中是分配一段连续的内存空间进行存储,其迭代器采用原生指针即可,因此其支持随机访问和存储,支持下标操 ...
随机推荐
- oracle10g连接自动断开,报ORA-03135错误
问题描述: oracle使用过一段时间,连接断开,报ORA-03135错误. 问题挖掘: 用pl/sql和sqlplus连接oracle,也存在该问题,确定该问题与连接方式无关. 查看服务器,发现没有 ...
- selenium 3.6.0 geckodriver的一次坑
Traceback (most recent call last): File "./se3.py", line 16, in <module> dr=webd ...
- Leetcode 51
//看了一次解析后,一次AC,用一个pos记录行列.class Solution { public: vector<vector<string>> solveNQueens(i ...
- python模块之ConfigParser: 用python解析配置文件
在程序中使用配置文件来灵活的配置一些参数是一件很常见的事情,配置文件的解析并不复杂,在python里更是如此,在官方发布的库中就包含有做这件事情的库,那就是ConfigParser,这里简单的做一些介 ...
- 【LeetCode 225_数据结构_栈_实现】Implement Stack using Queues
class Stack { public: // Push element x onto stack. void push(int x) { int len = nums.size(); nums.p ...
- SpringInAction--SpringMvc高级技术(servlet、filter、multipart)
前面学了spirng的一些配置,以及web方面的知识,今天就在学习一下在spring比较常用的一些高级技术... 首先来介绍下什么叫servlet吧(来着维基百科) Servlet(Server Ap ...
- react中父组件调用子组件的方法
1.直接使用ref进行获取 import React, {Component} from 'react'; export default class Parent extends Component ...
- kubernetes1.7新特:kubectl支撑中文字符集
背景介绍 在Kubernetes架构图中可以看到,节点(Node)是一个由管理节点委托运行任务的worker. 它能运行一个或多个Pods,节点(Node)提供了运行容器环境所需要的所有必要条件,在K ...
- Sql 基础问题
Ref Projection and Selection 联结查询的原理(笛卡尔积) 设计 MySQL 数据表的时候一般都有一列为自增 ID,这样设计原因是什么,有什么好处?
- nginx: [emerg] "fastcgi_pass" directive is duplicate in /etc/nginx/sites-enabled/default:57
/************************************************************************************************ * ...