vector和deque的应用

问题:

/*
有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。
//1. 创建五名选手,放到vector中
//2. 遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中
//3. sort算法对deque容器中分数排序,pop_back pop_front去除最高和最低分
//4. deque容器遍历一遍,累加分数,累加分数/d.size()
//5. person.score = 平均分
*/

在这里插入代#define _CRT_SECURE_N0_WARNINGS
#include<iostream>
#include<vector>
#include<deque>
#include<string>
#include<algorithm>
using namespace std;

class Person
{
public:
	string name;
	int score;
	Person(string name,int score)
	{
		this->name=name;
		this->score=score;
	}
};

void creatPerson(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);//创建临时对象
		v.push_back(p);
	}
}

void setscore(vector<Person>&v)
{
	for (vector<Person>::iterator it=v.begin();it!=v.end();it++)
	{
		deque<int>d;
			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 dit=d.begin();dit!=d.end();dit++)
				{
						sum+=*dit;
				}

				//平均分
				int avg=sum/d.size();
				it->score=avg;
	}
}

void showscore(vector<Person>&v)
{
for (vector<Person>::iterator it=v.begin();it!=v.end();it++)
	{
		cout<<" 名字: "<<it->name<<" 平均分: "<<it->score<<endl;
	}
}

int main()
{
	 //创建容器
	vector<Person>v;

    //创建5名选手

	creatPerson(v);

	//给5名选手打分
	setscore(v);

	//展示平均分
	showscore(v);
system("pause");
return EXIT_SUCCESS;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值