当前位置: 首页 > news >正文

C++物件数组的常用方法介绍

以下代码建立了一个物件数组Student,并展示了如何计算物件数组的长度,如何从物件数组中找到特定的对象,如何根据数组的不同参数进行排序,以及如何找到最大和最小值。

#include <iostream>
#include <algorithm>using namespace std;class Student{public:string Name;int Age;char Gender;float ProgrammingGrade;Student(string name, int age, char gender, float programmingGrade){Name = name;Age = age;Gender = gender;ProgrammingGrade = programmingGrade;}
};bool compareByGrade(const Student& s1, const Student& s2){return s1.ProgrammingGrade < s2.ProgrammingGrade;
}bool compareByName(const Student& s1, const Student& s2){return s1.Name < s2.Name;
}int main(){Student students[5] = {{"John", 20, 'm', 9},{"Bob", 21, 'm', 8},{"Alice", 19, 'm', 9.2},{"Eve", 20, 'm', 8.5},{"Jefferey", 23, 'm', 7.2}};// 如何找到物件数组的长度int arrSize = *(&students + 1) - students;// cout << "The length is: " << arrSize << endl;// Searchfor(int i = 0; i < arrSize; i++){if(students[i].Name == "Alice"){cout << "Alice found at index: " << i << endl;break;}}cout << "<--------------------------------------------->" << endl;// Sortsort(students, students + arrSize, compareByGrade);// sort(students, students + arrSize, compareByName);for(int i = 0; i < arrSize; i++){cout << students[i].Name << " " << students[i].ProgrammingGrade << " " << endl;}cout << "<--------------------------------------------->" << endl;// Max and MinStudent* maxGradeStudent = max_element(students, students + arrSize, compareByGrade);cout << "The max grade student is: " << maxGradeStudent->Name << " " << endl;Student* minGradeStudent = min_element(students, students + arrSize, compareByGrade);cout << "The min grade student is: " << minGradeStudent->Name << " " << endl;return 0;
}

Alice found at index: 2
<--------------------------------------------->
Jefferey 7.2
Bob 8
Eve 8.5
John 9
Alice 9.2
<--------------------------------------------->
The max grade student is: Alice
The min grade student is: Jefferey

相关文章:

C++物件数组的常用方法介绍

以下代码建立了一个物件数组Student&#xff0c;并展示了如何计算物件数组的长度&#xff0c;如何从物件数组中找到特定的对象&#xff0c;如何根据数组的不同参数进行排序&#xff0c;以及如何找到最大和最小值。 #include <iostream> #include <algorithm>using…...

云计算:新一代的技术革命

云计算&#xff0c;作为21世纪的一项重要技术革命&#xff0c;已在全球范围内引发了深远的影响。它改变了我们存储和处理数据的方式&#xff0c;使得企业无需再建设和维护昂贵的本地服务器和数据中心。本文将深入探讨云计算的基本概念&#xff0c;类型&#xff0c;主要优点&…...

数据结构—图的应用

6.4图的应用 概念回顾—生成树 生成树&#xff1a;所有顶点均由边连接在一起&#xff0c;但不存在回路的图。 一个图可以有许多棵不同的生成树、含有n个顶点 n-1 条边的图不一定是生成树所有生成树具有以下共同特点 生成树的顶点个数与图的顶点个数相同&#xff1b;生成树是图的…...

Unity 鼠标控制 UI 放大、缩小、拖拽

文章目录 1. 代码2. 测试场景 1. 代码 using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems;public class UIDragZoom : MonoBehaviour, IDragHandler, IScrollHandler {private Vector2 originalSize;private Vector2 originalPosition;private RectTr…...

tensorflow 模型计算中,预测错误;权重参数加载

tensorflow 模型计算中&#xff0c;预测错误&#xff1b;权重参数加载 tensorflow 模型计算主要代码&#xff08;正确代码&#xff09; linear1_kernel_initializer tf.constant_initializer(numpy.transpose(data["linear1.weight"])) linear1_bias_initializer …...

Jay17 2023.8.14日报 即 留校集训阶段性总结

8.14 打了moeCTF&#xff0c;还剩一题ak Web。 Jay17-集训结束阶段性总结&#xff1a; 集训产出&#xff1a; 自集训开始以来一个半月&#xff0c;最主要做的事情有三。 一是跟课程&#xff0c;复习学过的知识&#xff0c;学习新的知识&#xff1b;目前课程已大体听完&…...

【C语言】小游戏-扫雷(清屏+递归展开+标记)

大家好&#xff0c;我是深鱼~ 目录 一、游戏介绍 二、文件分装 三、代码实现步骤 1.制作简易游戏菜单 2. 初始化棋盘(11*11) 3.打印棋盘(9*9) 4.布置雷 5.计算(x,y)周围8个坐标的和 6.排查雷 <1>清屏后打印棋盘 <2>递归展开 <3>标记雷 四、完整代…...

云服务 Ubuntu 20.04 版本 使用 Nginx 部署静态网页

所需操作&#xff1a; 1.安装Nginx 2.修改配置文件 3.测试、重启 Nginx 4.内部修改防火墙 5.配置解析 6.测试是否部署成功 1.安装Nginx // 未使用 root 账号 apt-get update // 更新apt-get install nginx // 安装 nginx 1.1.测试是否安装没问题 在网页上输入云服务的公网…...

无后效性

动态规划的概念 在上例的多阶段决策问题中&#xff0c;各个阶段采取的决策&#xff0c;一般来说是与时间有关的&#xff0c;决策依赖于当前状态&#xff0c;又随即引起状态的转移&#xff0c;一个决策序列就是在变化的状态中产生出来的&#xff0c;故有“动态”的含义&#xf…...

Kubernetes系列-删除deployment和pod

通过deployment创建的pod直接执行delete是不会正常被删除的&#xff0c;因为deployment中设置了pod的数量&#xff0c;deployment会动态维护pod的数量&#xff0c;倘若pod数量少于约定数量&#xff0c;deployment会创建pod&#xff0c;直到pod数量达到约定数量才会停止。 如若…...

kotlin字符串方法

以下是一些常用的 String 方法示例&#xff1a; 1.获取字符串长度&#xff1a; val str "Hello, Kotlin" val length str.length2.字符串比较&#xff1a; val str1 "apple" val str2 "banana" val compareResult str1.compareTo(str2)3…...

ubuntu篇---配置FTP服务,本机和docker安装

ubuntu篇---配置FTP服务 一、本机安装1.1 安装FTP服务器软件1.2 配置FTP服务 二、docker安装&#xff08;我用的这个&#xff09;2.1 创建 目录2.2 启动脚本2.3 访问2.4 如何创建一个新的用户2.5 测试2.6 使用 一、本机安装 1.1 安装FTP服务器软件 ubuntu安装vsftp sudo apt…...

SpringBoot中properties、yml、yaml的优先级

原理 配置优先级低的会先加载然后会被配置优先级高的覆盖 验证 创建SpringBoot项目&#xff08;网址&#xff09; 在resource目录下创建application.properties、application.yml、application.yaml文件 运行 结论 优先级顺序&#xff1a; properties>yml>yaml...

SHELL 基础 SHELL注释 及 执行SHELL脚本的四种方法

SHELL 脚本编写规范 &#xff1a; 脚本开头 &#xff1a; # 脚本第一行 &#xff1a; #! /bin/bash 或 #!/bin/sh &#xff08; 脚本解释器 &#xff09; # 程序段开头需要加 版本版权信息 &#xff0c;例如 &#xff1a; # Date 创建日期 # Author : 作者 # …...

【Spring】深入探索 Spring AOP:概念、使用与实现原理解析

文章目录 前言一、初识 Spring AOP1.1 什么是 AOP1.2 什么是 Spring AOP 二、AOP 的核心概念2.1 切面&#xff08;Aspect&#xff09;2.2 切点&#xff08;Pointcut&#xff09;2.3 通知&#xff08;Advice&#xff09;2.4 连接点&#xff08;Join Point&#xff09; 三、Sprin…...

LocalDate介绍和使用

1.什么是 LocalDate&#xff1f; 在我们开始之前&#xff0c;让我先简单介绍一下 LocalDate。它是 Java 8 中引入的日期类&#xff0c;用于表示不带时区信息的日期。也就是说&#xff0c;它专注于日期&#xff0c;并忽略了具体的时间。这样&#xff0c;我们就可以专心解决那些…...

三、使用注解形式开发 Spring MVC程序

文章目录 一、环境准备二、配置 web.xml三、配置 SpringMVC-Servlet.xml &#xff0c;这里不再使用之前那种写法&#xff0c;直接采用注解配置&#xff0c;引入注解支持&#xff0c;配置视图解析器四、编写 Controller&#xff08;Controller 和 RequestMapping 注解说明&#…...

【Go】常见的四个内存泄漏问题

Goroutine没有顺利结束 1、这里更多的是由于channelforselect导致的&#xff0c;错误的写法导致了发送者或接收者没有发现channel已经关闭&#xff0c;任务已经结束了&#xff0c;却仍然在尝试输入输出https://geektutu.com/post/hpg-exit-goroutine.html Map的remove方法不会…...

【LeetCode-简单】剑指 Offer 29. 顺时针打印矩阵(详解)

题目 输入一个矩阵&#xff0c;按照从外向里以顺时针的顺序依次打印出每一个数字。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7,8,9]] 输出&#xff1a;[1,2,3,6,9,8,7,4,5]示例 2&#xff1a; 输入&#xff1a;matrix [[1,2,3,4],[5,6,7,8],[9,10,1…...

TOMCAT基础

tomcat是一个基于Java开发的&#xff0c;开放源代码的web应用服务器。它可以解析html页面中的java代码&#xff0c;执行动态请求&#xff0c;实现动态页面。核心功能是将收到的http请求处理并转发给适当的servlet来处理&#xff0c;然后将响应返回给客户端。 优点 1&#xff0c…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

内存分配函数malloc kmalloc vmalloc

内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...

【WiFi帧结构】

文章目录 帧结构MAC头部管理帧 帧结构 Wi-Fi的帧分为三部分组成&#xff1a;MAC头部frame bodyFCS&#xff0c;其中MAC是固定格式的&#xff0c;frame body是可变长度。 MAC头部有frame control&#xff0c;duration&#xff0c;address1&#xff0c;address2&#xff0c;addre…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展&#xff0c;AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术&#xff0c;在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

安宝特案例丨Vuzix AR智能眼镜集成专业软件,助力卢森堡医院药房转型,赢得辉瑞创新奖

在Vuzix M400 AR智能眼镜的助力下&#xff0c;卢森堡罗伯特舒曼医院&#xff08;the Robert Schuman Hospitals, HRS&#xff09;凭借在无菌制剂生产流程中引入增强现实技术&#xff08;AR&#xff09;创新项目&#xff0c;荣获了2024年6月7日由卢森堡医院药剂师协会&#xff0…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

深入理解Optional:处理空指针异常

1. 使用Optional处理可能为空的集合 在Java开发中&#xff0c;集合判空是一个常见但容易出错的场景。传统方式虽然可行&#xff0c;但存在一些潜在问题&#xff1a; // 传统判空方式 if (!CollectionUtils.isEmpty(userInfoList)) {for (UserInfo userInfo : userInfoList) {…...