c++用vector先按学生的年级排序,再按学生的分数排序算法

2023-11-18

// VectorSort.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "stdio.h"
#include "string.h"
#include <vector>

using namespace std;

struct Stu
{
	std::string name;
	int level;
	int score;
};

int _tmain(int argc, _TCHAR* argv[])
{
	vector<Stu> stuVec;
	for (size_t i = 0; i < 6; i++)
	{
		Stu stu;
		stu.name = "vvv";
		stu.level = i*2;
		stu.score = i * 20;
		stuVec.insert(stuVec.end(), stu);
	}

	Stu stu1;
	stu1.name = "vvv";
	stu1.level = 4;
	stu1.score = 500;
	stuVec.insert(stuVec.end(), stu1);

	Stu stu2;
	stu2.name = "vvv";
	stu2.level = 4;
	stu2.score = 7;
	stuVec.insert(stuVec.end(), stu2);

	Stu stu3;
	stu3.name = "vvv";
	stu3.level = 5;
	stu3.score = 500;
	stuVec.insert(stuVec.end(), stu3);

	Stu stu4;
	stu4.name = "vvv";
	stu4.level = 4;
	stu4.score = 30;
	stuVec.insert(stuVec.end(), stu4);

	Stu stu5;
	stu5.name = "vvv";
	stu5.level = 7;
	stu5.score = 80;
	stuVec.insert(stuVec.end(), stu5);

	vector<Stu>::iterator it;
	vector<Stu>::iterator it2;
	for (it = stuVec.begin(); it != stuVec.end(); it++)
	{
		printf("stu %d %d \n", it->level, it->score);
	}

	printf("\n");

	for (it = stuVec.begin(); it != stuVec.end(); it++)
	{
		for (it2 = it + 1; it2 != stuVec.end(); it2++)
		{
			Stu temp;
			if (it ->level > it2->level) {
				temp = *it;
				*it = *it2;
				*it2 = temp;
			}

			if (it->level == it2->level) {
				if (it->score > it2->score) {
					temp = *it;
					*it = *it2;
					*it2 = temp;
				}
			}
		}
	}

	for (it = stuVec.begin(); it != stuVec.end(); it++)
	{
		printf("stu %d %d \n", it->level, it->score);
	}

	printf("\n");


	getchar();
	return 0;
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c++用vector先按学生的年级排序,再按学生的分数排序算法 的相关文章

随机推荐

  • 【Linux】---进程控制(创建、终止、等待、替换)

    文章目录 进程创建 fork 进程退出 进程退出场景 进程退出方法 退出码 exit exit 进程等待 进程等待的方法 wait waitpid 阻塞和非阻塞 进程替换 替换的原理 替换所用到的函数 execl execlp execle
  • shell 字符串处理汇总(查找,替换等等)

    字符串 简称 串 有限字符的序列 数据元素为字符的线性表 是一种数据的逻辑结构 在计算机中可有不同的存储结构 在串上可进行求子串 插入字符 删除字符 置换字符等运算 字符 计算机程序设计及操作时使用的符号 包括字母 数字 空格符 提示符及各
  • 【Java基础知识 3】为何要配置环境变量?

    Java基础教程系列 Java基础教程系列 Java学习路线配套文章 搬砖工逆袭Java架构师 Java经典面试题大全 10万字208道Java经典面试题总结 附答案 简介 Java领域优质创作者 CSDN哪吒公众号作者 Java架构师奋斗
  • 模拟电路设计(33)---电源变换器简介

    概述 电子设备都需要供电 其电能来源于火力 水力 核子发电厂提供的交流电 这些交流电通过电源设备变换为直流电 但是 这种直流电源不符合需要 仍需变换 这称为DC DC变换 常规的变换器是串联线性稳压电源 其调整元件工作于线性放大区 通过的电
  • 学习Kali渗透测试笔记

    Kali渗透测试 一 什么是渗透测试 1 软件测试 2 安全测试与渗透测试 3 渗透测试 二 渗透测试的目标 1 网络硬件设备 2 主机操作系统 3 应用系统 4 数据库系统 三 渗透测试的意义 四 渗透测试的方法分类 1 按照信息掌握程度
  • LiteOrm "cannot be instantiated"

    错误提示 java lang Class
  • 【深度强化学习】(5) DDPG 模型解析,附Pytorch完整代码

    大家好 今天和各位分享一下深度确定性策略梯度算法 Deterministic Policy Gradient DDPG 并基于 OpenAI 的 gym 环境完成一个小游戏 完整代码在我的 GitHub 中获得 https github c
  • 网络管理服务器篇之Apache

    一 软件简介 1 Apache是最流行的Web服务器端软件之一 快速 可靠 可通过简单的API扩展 Perl Python解释器可被编译到服务器中 完全免费 完全源代码开放 如果你需要创建一个每天有数百万人访问的Web服务器 Apache可
  • 【文件上传绕过】五、文件后缀大小写绕过

    文章目录 一 黑名单 二 源码 三 大小写绕过 一 黑名单 本pass禁止上传 php php5 php4 php3 php2 php1 html htm phtml pHp pHp5 pHp4 pHp3 pHp2 pHp1 Html Ht
  • String类详解

    目录 一 创建字符串的四种方式 1 直接赋值 2 通过构造方法创建对象 3 通过字符数组创建对象 4 通过String类的静态方法valueOf 任意数据类型 gt 转为字符串 二 字符串比较相等 equals方法 equalsIgnore
  • ICMP协议Ping方法的Python实现解析

    ICMP协议Ping方法的Python实现解析 说明 本代码适合Windows 没有在其他系统下进行测试 参考对象为https github com samuel python ping 流程 选择目标网址 解析对方ip地址 构造数据报 添
  • KVM 虚拟机的热迁移

    热迁移 顾名思义在虚拟机不关机的情况下将KVM虚拟机进行迁移 准备工作 两台KVM虚拟机 一台nfs虚拟机 centos7 4系统 主机 IP地址 主机名 KVM01 10 00 11 kvm01 KVM02 10 0 0 12 kvm02
  • SSM简单项目

    暑假项目实训花了2个星期做的项目 前台完成了大部分 后台做了一点点 其中主要运用了ssm框架技术 layui前端技术 拦截器 阿里云支付宝接口 阿里云短信验证接口 layui轮播图 流加载 分页 表单 表格等技术 访问网站 http www
  • 明智而审慎地使用多重继承——条款40

    当多重继承 multiple inheritance MI 进入设计景框 程序有可能从一个以上的base classes继承相同名称 如函数 typedef等等 那会导致较多的歧义机会 例如 class BorrowableItem 图书馆
  • 《unix环境高级编程》--- 进程环境

    终止码 main中返回一个整型值与用该值调用exit是等价的 include
  • jemalloc C++实践

    jemalloc是一种通用的malloc 3 实现 优点是避免内存碎片和可伸缩并发支持 下载源码 wget https github com jemalloc jemalloc releases download 5 2 1 jemallo
  • IA-YOLO项目中DIP模块的初级解读

    IA YOLO项目源自论文Image Adaptive YOLO for Object Detection in Adverse Weather Conditions 其提出端到端方式联合学习CNN PP和YOLOv3 这确保了CNN PP
  • mysql篇---windows环境

    1 windows环境下的mysql忘记密码了会很麻烦 试了好多种攻略都不行 只得重装 所以安装好后 要找个记事本写root密码 2 如果重装的话 直接到mysql官网 下载最新版 https dev mysql com downloads
  • 区块链:如何学习区块链技术?

    To strive to seek to find and not to yield 奋斗 探索 寻求 永不屈服 1 中本聪的关于比特币的白皮书 英文原版 Bitcoin A Peer to Peer Electronic Cash Sys
  • c++用vector先按学生的年级排序,再按学生的分数排序算法

    VectorSort cpp 定义控制台应用程序的入口点 include stdafx h include stdio h include string h include