面向对象的C++题目以及解法2

01串排序

#include <iostream>  
#include <vector>  
#include <algorithm>  
#include <string>  
using namespace std;
class String {
public:string str; String(const string& s) : str(s) {}  int length() const {return str.length();}int countOnes() const {return count(str.begin(), str.end(), '1');}bool operator<(const String& other) const {if (length() != other.length()) {return length() < other.length();  }if (countOnes() != other.countOnes()) {return countOnes() < other.countOnes();  }return str < other.str;  }
}; 
struct StringComparator {bool operator()(const String& a, const String& b) {return a < b;}
};
int main() {vector<String> Strings;string s;while (getline(cin, s)) {Strings.emplace_back(s);if (s == "")break;}sort(Strings.begin(), Strings.end(), StringComparator());for (const auto& bs : Strings) {std::cout << bs.str << std::endl;}return 0;
}

运行结果:
 

按绩点排名 

#include <iostream>  
#include <vector>  
#include <algorithm>  
#include <iomanip>  
#include <string>  
using namespace std; 
class Student {
public:string name;double gpa;Student(string n, double g) : name(n), gpa(g) {}  bool operator<(const Student& other) const {if (gpa != other.gpa) {return gpa > other.gpa; }else {return name < other.name; }}
};
int main() {int classCount;cin >> classCount;for (int c = 1; c <= classCount; ++c) {int n, m;cin >> n;vector<int> credits(n);for (int i = 0; i < n; ++i) {cin >> credits[i];}cin >> m;vector<Student> students;for (int i = 0; i < m; ++i) {string name;vector<int> scores(n);cin >> name;for (int j = 0; j < n; ++j) {cin >> scores[j];}double gpa = 0.0;for (int j = 0; j < n; ++j) {if (scores[j] >= 60) {gpa += (scores[j] - 50.0) / 10.0 * credits[j];}}gpa /= 10.0;students.emplace_back(name, gpa);}  sort(students.begin(), students.end()); cout << "class " << c << ":" << endl;for (const auto& student : students) {cout << left << setw(10) << student.name << " " << fixed << setprecision(2) << student.gpa << endl;}if (c < classCount) {cout << endl; }}return 0;
}

运行结果:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/624324.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于栈求解迷宫的单条路径和所有路径

数据结构与算法课的一个实验&#xff0c;记录一下。 单纯想要了解利用栈求解迷宫的算法可以直接跳转到相应的小标题。 完整代码链接code_2024/mazeLab LeePlace_OUC/code - 码云 - 开源中国 (gitee.com) 文章目录 要求栈的实现MazeType类型的组织迷宫的初始化和销毁打印路径…

QFS [VLDB‘13] 论文阅读笔记

原论文&#xff1a;The Quantcast File System (VLDB’13) QFS简介及技术要点 QFS&#xff08;Quantcast File System&#xff09;是由Quantcast开发的一个高效、可扩展的分布式文件系统&#xff0c;旨在提供与Hadoop分布式文件系统&#xff08;HDFS&#xff09;兼容的替代方案…

C++11(下篇)

文章目录 C111. 模版的可变参数1.1 模版参数包的使用 2. lambda表达式2.1 Lambda表达式语法捕获列表说明 2.2 lambda的底层 3. 包装器3.1 function包装器3.2 bind 4. 线程库4.1 thread类4.2 mutex类4.3 atomic类4.4 condition_variable类 C11 1. 模版的可变参数 C11支持模版的…

设计编程网站集:动物,昆虫,蚂蚁养殖笔记

入门指南 区分白蚁与蚂蚁 日常生活中&#xff0c;人们常常会把白蚁与蚂蚁搞混淆&#xff0c;其实这两者是有很大区别的&#xff0c;养殖方式差别也很大。白蚁主要食用木质纤维&#xff0c;会给家庭房屋带来较大危害&#xff0c;而蚂蚁主要采食甜食和蛋白质类食物&#xff0c;不…

数据结构——双向循环链表

目录 前言 一、链表的分类 二、双向循环链表 2.1 开辟新的节点 2.2 链表初始化 2.3 打印链表 2.4 链表的尾插 2.5 链表的头插 2.6 链表的尾删 2.7 链表的头删 2.8 查找链表 2.9 在pos位置之后插入数据 2.10 删除pos位置的数据 三、完整代码实现 四、顺序表和双向…

【学习笔记】Vue3源码解析:第四部分- runtime-dom(1)

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第四部分-&#xff1a;&#xff08;对应课程的第24-26节&#xff09; 第24节&#xff1a;《理解runtime-dom的作用》 源码中除了 dep.ts &#xff0c;其余基…

【可实战】测试体系与测试方案设计(业务按公司实际情况,技术可参考通用测试方案)

一、如果我们要测试一个系统&#xff0c;首先我们要了解被测系统的架构 &#xff08;一&#xff09;业务架构-从需求里面去了解&#xff08;角色和行为&#xff09;&#xff1a; 业务模型分析&#xff08;是一个电商&#xff0c;还是一个企业的crm&#xff0c;还是一个网站&a…

Java --- 类与对象

上篇内容给大家带来了Java的语句与数组的相关内容&#xff0c;那么本期内容比较重要&#xff0c;需要读者们掌握Java面向对象编程的根本&#xff0c;通过这篇博客来让读者浅入理解Java类的一些基本操作。 目录 一.特点&#xff1a; 二.成员变量&#xff1a; 三.访问修饰符&a…

Vue3项目中快速引入ElementUI框架

ElementUI介绍 ElementUI是一个强大的PC端UI组件框架&#xff0c;它不依赖于vue&#xff0c;但是却是当前和vue配合做项目开发的一个比较好的ui框架&#xff0c;其包含了布局&#xff08;layout)&#xff0c;容器&#xff08;container&#xff09;等各类组件&#xff0c;基本上…

控制某个对象缩放

效果如下&#xff1a; 您只需要控制此对象进行激活&#xff0c;将对象设置为&#xff1a;gameObject.SetActive(true);即可实现此次效果 代码如下&#xff1a; public class StartShowRun : MonoBehaviour {Transform _localTransfrom;Vector3 _localScale;public AnimationC…

YoloV9实战:从Labelme到训练、验证、测试、模块解析

模型实战 训练COCO数据集 本次使用2017版本的COCO数据集作为例子&#xff0c;演示如何使用YoloV8训练和预测。 下载数据集 Images: 2017 Train images [118K/18GB] &#xff1a;http://images.cocodataset.org/zips/train2017.zip2017 Val images [5K/1GB]&#xff1a;htt…

Ubuntu20从0开始选择合适版本手动安装cuda,torch-geometric,jax

一个全新的ubuntu20台式机&#xff0c;在Additional Drivers安装nvidia-470-server&#xff08;一开始安装450&#xff0c;cunda版本只能到11.0&#xff0c;torch有些库用不了&#xff0c;可以直接切换点击Apply Changes重启就行&#xff09; nvidia-smi查看CUDA Version可到…