首页 > 其他分享 >Vector和deque小案例

Vector和deque小案例

时间:2024-02-20 19:00:58浏览次数:25  
标签:deque vstu int 学生 案例 Vector dScore 评委 include

打分案例

1.目的:5个学生,10个评委,10个评委的分数去掉最高和最低分,取平均分就是学生的分数

2.思路:

​ 1.抽象学生

​ 2.使用vector容器存储学生

​ 3.把分数放入deque容器,然后对deque容器进行排序,之后删除首尾元素

3.流程:

​ 1.创建学生

​ 2.评委给学生打分

​ 3.根据学生的分数排名并打印

#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
#include<vector>
#include<deque>
#include<string>
#include<algorithm>//算法头文件
#include<ctime>//随机数
using namespace std;
//目的:5个学生,10个评委,10个评委的分数去掉最高和最低分,取平均分就是学生的分数
//抽象学生
class Student
{
public:
	string name;
	int mScore;
};

//1.创建学生
void CreateStudent(vector<Student> &vstu)
{
	string setName = "ABCDE";
	for (int i = 0; i < 5; i++)
	{
		//创建学生
		Student stu;
		stu.name = "学生";
		stu.name += setName[i];
		stu.mScore = 0;
		vstu.push_back(stu);//把学生放入容器
	}
}
//2.评委给学生打分
void SetScore(vector<Student> &vstu)
{
	srand((unsigned int)time(NULL));//随机种子
	//遍历学生
	for (vector<Student>::iterator it = vstu.begin(); it != vstu.end(); ++it)
	{
		//保存分数
		deque<int> dScore;
		//评委给学生打分
		for (int i = 0; i < 10; i++)
		{
			int score = rand() % 70 + 30;
			dScore.push_back(score);
		}
		//排序
		sort(dScore.begin(),dScore.end());
		//去掉最高分和最低分
		dScore.pop_back();
		dScore.pop_front();

		//求总分
		int tota = 0;
		for (deque<int>::iterator sit = dScore.begin(); sit != dScore.end(); ++sit)
		{
			tota += (*sit);
		}

		//求平均分
		int agescore = tota / dScore.size();

		//平均分存储到对象中
		it->mScore = agescore;

	}
}
//谓词
bool mycomapre(Student &s1, Student &s2)
{
	return s1.mScore > s2.mScore;
}
//3.排名并打印
void ShowStudentScore(vector<Student> &vstu)
{
	//排序算法,mycomapre改变sort的默认规则
	sort(vstu.begin(), vstu.end(), mycomapre);
	for (vector<Student>::iterator it = vstu.begin(); it != vstu.end(); ++it)
	{
		cout << "Name:" << it->name << " Score:" << it->mScore << endl;
	}


}
void test()
{
	//存储学生的容器
	vector<Student> vstu;

	//1.创建学生
	CreateStudent(vstu);
	//2.评委给学生打分
	SetScore(vstu);
	//3.排名并打印
	ShowStudentScore(vstu);

}

int main()
{
	test();
	system("pause");
	return EXIT_SUCCESS;
}


标签:deque,vstu,int,学生,案例,Vector,dScore,评委,include
From: https://www.cnblogs.com/wbcde116/p/18023838

相关文章

  • deque
    deque容器1.数据结构:逻辑上是连续的存储空间,实际上的由很多块定量的块空间,通过中控制连接起来2.迭代器:随机迭代器Deque是由一段一段的定量的连续空间构成。一旦有必要在deque前端或者尾端增加新的空间,便配置一段连续定量的空间,串接在deque的头端或者尾端。Deque最大的工作就......
  • Vector
    vector容器(重点,常用容器)1.数据结构:连续存储空间2.迭代器:随机迭代器3.vector容器动态增长原理​ 1.当存储空不够时,会开辟另一块大的空间,然后把数据拷贝过去,最后在销毁原来的空间​ 2.申请的空间,会比用户需求大一点​ 3.重新分配空间,那么原来的迭代器就会失效​ 所谓动......
  • 振弦采集仪在岩土工程安全监测中常见的应用案例
    振弦采集仪在岩土工程安全监测中常见的应用案例河北稳控科技振弦采集仪在岩土工程安全监测中具有重要的应用,常见的应用案例包括: 1.岩石边坡监测:振弦采集仪可用于监测岩石边坡的变形和位移情况。通过将振弦传感器安装在边坡上,可以实时监测边坡的变形和位移,及早发现边坡的变形......
  • 电子商务行业的 OKR(理论与案例两手抓)
    在这篇博客文章中,我们将指导您了解电子商务OKR的复杂性,清晰地了解如何设定目标和定义关键结果,以实现您的业务抱负。在本文结束时,您将具备在电子商务领域中导航并使用电子商务OKR带领您的业务取得成功的知识和信心。因此,加入我们的旅程,让我们一起开始探索电子商务OKR的潜力!什么是O......
  • c++vector
    下面是我在学习过程中对vector的理解,希望能够帮助到大家;vector(容器)(本质和数组一致)不过其对象长度不定.与数组不一样的是在使用vector是需要写头文件#include下面举出几个例子来说明:vectorv;  建立了一个名为v的int类型的容器,在这里并没有初始话值为多少,所以此时为......
  • 【机器学习算法】KNN鸢尾花种类预测案例和特征预处理。全md文档笔记(已分享,附代码)
    本系列文章md笔记(已分享)主要讨论机器学习算法相关知识。机器学习算法文章笔记以算法、案例为驱动的学习,伴随浅显易懂的数学知识,让大家掌握机器学习常见算法原理,应用Scikit-learn实现机器学习算法的应用,结合场景解决实际问题。包括K-近邻算法,线性回归,逻辑回归,决策树算法,集成学习,聚......
  • 华为WLAN FIT AC+AP 模式配置案例-3
    5.VRRP配置1)#配置VRRP备份组的状态恢复延迟时间为60秒。vrrprecover-delay60#在AC1上创建管理VRRP备份组,配置AC1在该备份组中的优先级为120,并配置抢占时间为300秒。interfaceVlanif124ipaddress10.1.124.11255.255.255.0vrrpvrid1virtual-ip10.1.124.10......
  • 产品管理中 10 个具有里程碑意义的 OKR 案例
    产品管理是组织中的一项重要职能,负责开发和交付成功的产品以满足客户需求。目标和关键结果(OKR)可以为产品管理团队提供结构化框架,以推动创新、提高客户满意度并实现业务目标。以下是产品管理中十个具有里程碑意义的OKR案例:1.提高客户满意度目标:通过提供卓越的产品和体验......
  • 创新案例 | 从8000万到110亿,鸭鸭羽绒如何练就100倍逆势增长奇迹?
    鸭鸭羽绒100倍增长奇迹在现今市场环境中,许多企业都面临着增长乏力的问题,仿佛陷入了无法突破的困境。然而,总有一些企业能够在这样的环境中独树一帜,表现出色。鸭鸭羽绒就是这样一个典型的例子。尽管整个经济环境并不理想,但鸭鸭却能在短短三年内,将营收从9000万迅速提升至100......
  • dotnet-cnblog tool 测试案例
    这是测试donet-cnblog工具是否能将正常的Typora图片转换为博客园格式测试1:本地图片导入测试2:QQ截图测试3:urlhttps://pics3.baidu.com/feed/9345d688d43f8794105499b2ead60ef819d53ad8.jpeg@f_auto?token=d70fe4868ac1356d70833be721199be3结论成功!!!随后整理出自己的实践......