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

结构体struct和类class

一、结构体structC 中的struct结构体是一种自定义数据类型核心作用是将不同类型但相关联的数据封装在一起形成一个整体。它是 C 面向对象编程的基础之一甚至可以看作轻量级的类特别适合像「学生信息姓名 生日 输入顺序」这类需要聚合多个数据的场景。// 语法struct 结构体名 { 成员变量列表; }; struct Student { // 成员变量可以是不同类型 string name; // 姓名字符串类型 int year; // 出生年整型 int month; // 出生月整型 int day; // 出生日整型 int idx; // 输入顺序整型 }; // 注意结尾必须加分号1.结构体初始化和调用#include iostream #include string using namespace std; struct Student { string name; int year, month, day, idx; }; int main() { // 方式1先定义对象再逐个赋值 Student stu1; stu1.name Luowen; stu1.year 1991; stu1.month 8; stu1.day 1; stu1.idx 0; // 方式2定义时直接初始化C11 及以上支持 Student stu2 {Yangchu, 1992, 4, 23, 1}; // 方式3用 new 创建动态对象堆内存需手动释放 Student* stu3 new Student{Qiujingya, 1993, 10, 13, 2}; // 访问成员变量普通对象用 . 指针对象用 - cout stu1.name endl; // 输出Luowen cout stu3-name endl; // 输出Qiujingya delete stu3; // 释放动态对象内存避免泄漏 return 0; }2.结构体数组// 1. 定义结构体类型 同时创建结构体数组 struct student // 定义名为 student 的结构体类型注意C中结构体名小写/大写都可以建议统一风格 { string name; // 学生姓名string 类型需包含 string 头文件 int y; // 出生年份 int m; // 出生月份 int d; // 出生日期 int id; // 输入顺序/编号对应之前的 idx }a[N]; // 关键定义结构体的同时创建一个名为 a、长度为 N 的结构体数组二、结构体 vs 类classC 中struct和class几乎是等价的唯一核心区别struct的成员默认公有public无需写public:class的成员默认私有private需要显式写public:才能外部访问。struct S { int a; // 默认 public外部可直接访问 }; class C { int a; // 默认 private外部不可直接访问 public: int b; // 显式 public外部可访问 };C 结构体struct是封装多个不同类型数据的自定义类型结尾必须加分号访问结构体成员普通对象用.指针对象用-对结构体数组排序时需通过「自定义比较函数」或「重载 运算符」定义排序规则核心是按「年→月→日升序同生日按输入顺序降序」结构体默认成员公有适合简单数据聚合场景如学生信息是 C 处理结构化数据的基础。题目P1104 生日结构体内部的变量为成全变量不是全局变量存的是随机值结构体排序不能直接使用sortsort(a, an, cmp);bool cmp(student b, student c){// if(b.y c.y ) return bc;// if(b.y ! c.y) return b.y c.y;//sort排序是从小到大排序的 如果返回的是true b cif(b.y ! c.y) return b.y c.y;if(b.m ! c.m) return b.m c.m;if(b.d ! c.d) return b.d c.d;return b.idx c.idx;}#include bits/stdc.h using namespace std; const int N 110 ; struct student{ string name; int y, m, d; int idx;//结构体内部的变量为成全变量不是全局变量存的是随机值 }a[N]; bool cmp(student b, student c){ // if(b.y c.y ) return bc; // if(b.y ! c.y) return b.y c.y; //sort排序是从小到大排序的 如果返回的是true b c if(b.y ! c.y) return b.y c.y; if(b.m ! c.m) return b.m c.m; if(b.d ! c.d) return b.d c.d; return b.idx c.idx; } int main(){ int n; cin n; //结构体为数组时调用时一定要用a[i] // while(n--){ // cin a.name a.y a.m a.d; // } for(int i0; in; i){ cin a[i].name a[i].y a[i].m a[i].d ; a[i].idx i; } //结构体排序不能直接使用sort sort(a, an, cmp); for(int i0; in; i) cout a[i].name endl; return 0; }

相关文章:

结构体struct和类class

一、结构体(struct)C 中的 struct(结构体)是一种自定义数据类型,核心作用是将不同类型但相关联的数据封装在一起,形成一个整体。它是 C 面向对象编程的基础之一(甚至可以看作轻量级的类&#xf…...

告别线束羁绊,重塑工业通讯:南京来可LCWLAN系列CAN转WiFi模块硬核揭秘

产品概述:打破线束羁绊,重塑工业通讯在复杂多变的工业现场与飞速发展的物联网时代,传统有线CAN总线正面临布线困难、移动设备受限以及跨网段数据孤岛等严峻挑战。如何让稳定可靠的CAN数据“飞”上云端,或在移动设备间无缝穿梭&…...

MyBatis Interceptor执行顺序详解(plugin机制、责任链模式)

目录一、引言二、Interceptor的注册顺序2.1 配置文件注册(mybatis-config.xml)2.2 代码注册2.3 SpringBoot Order2.4 扩展 - PageHelper链最后(即最先执行)三、plugin机制与InterceptorChain3.1 InterceptorChain.pluginAll3.2 In…...

2026大专电子商务毕业生就业学数据分析的价值分析

电子商务与数据分析的行业趋势近年来电子商务行业数据化转型加速,企业普遍依赖数据分析优化运营、精准营销和供应链管理。2025年《中国电子商务报告》显示,超75%的电商企业将数据分析能力列为核心岗位要求,涵盖用户行为分析、销售预测等场景。…...

“AI+”引爆家电新一轮以旧换新,AWE上看AI家电“百花争艳”

3月12日,以“AI科技,慧享未来”为主题的中国家电及消费电子博览会(AWE)在上海启幕,长虹携全线AI家电矩阵亮相,从画质革新的RGB-Mini LED新品、AI人感空调、场景化的AI冰洗厨套系,再到AI智慧家居…...

收藏!2026大模型春招真相|200个真实JD拆解,后端/算法转岗必看(小白友好)

本人从后端开发传统算法双赛道转岗大模型,最近趁着金三银四春招,计划冲刺一波大模型相关岗位,但越准备越迷茫——大模型知识点繁杂且更新极快,个人精力有限,始终找不到重点,不知道该把时间花在哪些技能上才…...

Win11家庭版也能用组策略?3步教你手动安装gpedit.msc(附完整CMD代码)

解锁Windows 11家庭版的隐藏管理能力:手动部署组策略编辑器全指南 如果你正在使用Windows 11家庭版,可能早就发现了一个令人困惑的“缺失”——在运行对话框里输入gpedit.msc,系统会告诉你找不到这个文件。这并非你的系统出了问题&#xff0c…...

Blender新手必看:3种超简单模型环绕技巧(附详细步骤图)

Blender新手必看:3种超简单模型环绕技巧(附详细步骤图) 刚接触Blender,面对空白的3D视窗,是不是既兴奋又有点无从下手?尤其是当你需要让一堆物体,比如柱子、灯泡、甚至是科幻场景中的能量核心&a…...

一灯即千言:无线Andon系统如何重塑服装厂敏捷生产

在传统服装制造车间,问题的发现与解决往往依赖班组的巡视与工人的主动汇报,信息流如同穿梭的线头,容易纠缠、迟滞。一个微小的断针、一道色差的缝线、一次设备的异常停顿,都可能因为信息传递的“时间差”而演变为整批货品的延误。…...

Canoe中panel面板关联系统变量

背景:在SystemVariables中加了变量,但在Panel设计面板中未找到变量,be like 如下实际原因:在Environment中SystemVariables中新增数据后,未重新保存退出,导致此原因...

ChatGLM-6B多语言扩展:实现中英混合对话

ChatGLM-6B多语言扩展:实现中英混合对话 1. 引言 ChatGLM-6B作为一款优秀的开源对话模型,原生支持中英双语能力,但在实际使用中,很多开发者发现模型在处理中英混合对话时表现不够理想。比如当你问"帮我写一段Python代码实现…...

清研电子荣获维科杯·OFweek 2025年度动力电池材料创新技术奖

2026 年 3 月 12 日,维科杯・OFweek 2025锂电行业年度评选颁奖典礼在香港亚洲国际博览馆隆重举办。近 300 个参评项目历经专家评审、网络投票、行业编辑三轮严苛筛选,清研电子凭借动力电池材料领域“技术颠覆 产业落地 生态赋能” 的全方位优势&#x…...

立创开源:基于STM32F030的1kHz SPWM简易电池内阻测试仪设计与实现

手把手教你DIY一个电池内阻测试仪:从原理到实战 最近在折腾一些锂电池项目,发现电池内阻这个参数特别重要。内阻大了,电池放电时发热就厉害,容量也虚。市面上的专业内阻测试仪动辄上千,对咱们爱好者来说有点下不去手。…...

Stable-Diffusion-V1-5 辅助工业设计:生成产品概念草图与外观方案

Stable-Diffusion-V1-5 辅助工业设计:生成产品概念草图与外观方案 1. 引言 你有没有过这样的经历?面对一个全新的产品设计任务,脑子里想法很多,但要把它们画出来,却感觉无从下笔。一张白纸,一支笔&#x…...

Phi-3 Forest Laboratory API接口调用全指南:从鉴权到流式响应

Phi-3 Forest Laboratory API接口调用全指南:从鉴权到流式响应 你是不是也对那些能对话、能写代码的AI模型感到好奇,想自己动手调用一下试试?今天咱们就来聊聊怎么通过代码,跟一个叫Phi-3 Forest Laboratory的模型“说上话”。别…...

Realistic Vision V5.1本地化部署教程:纯离线、零网络依赖、宽屏交互界面搭建

Realistic Vision V5.1本地化部署教程:纯离线、零网络依赖、宽屏交互界面搭建 想在自己的电脑上体验媲美单反相机的人像摄影效果,但又担心复杂的云端配置和网络依赖?今天,我们就来手把手教你,如何将顶级的Realistic V…...

磁链三矢量

磁链三矢量在电机控制的世界里,磁链三矢量就像三位配合默契的舞者。想象你手里有个三相电机,三个相位互相纠缠的磁场总让你头疼。这时候不妨试试把ABC坐标系拍扁——没错,我说的就是把三相电流投影到二维平面的αβ坐标系变换。先来看段硬核代…...

SPI 2026 报告解读—服务企业的竞争,正在从“拼业务”变成“拼管理”

每年 SPI Research 发布的《Professional Services Maturity Benchmark》,对于专业服务企业管理都是极具参考价值的一份报告。这份报告已经持续做了 19 年,几乎可以说是全球专业服务企业最系统的经营数据研究之一。2026年的报告基于 509家专业服务企业的…...

DrissionPage实战:绕过滑块验证的精准定位与模拟操作(非深度学习方案)

1. 为什么选择非深度学习的滑块验证绕过方案 最近在做一个自动化项目时,遇到了滑块验证码这个拦路虎。刚开始我也考虑过用深度学习方案,但实测下来发现几个痛点:首先需要大量标注数据训练模型,其次识别准确率不稳定,最…...

Nano-Banana高效部署教程:Docker镜像开箱即用,无需conda环境配置

Nano-Banana高效部署教程:Docker镜像开箱即用,无需conda环境配置 你是不是也遇到过这种情况?看到网上那些酷炫的产品拆解图、爆炸图,自己也想动手做一个,结果发现要装一堆环境,什么Python、PyTorch、各种依…...

JAVA实习生问:为什么项目不用VO?

校大网原创,公众号首发给刚开始的线上实习生做代码评审,发现有一个同学在返回给前端的Response DO 对象 里面,又额外套了一层 VO 对象。我就问他:“为什么要多加一层?没有任何逻辑的增加,就好像是脱裤子放屁…...

如何通过监控指标保障数据库连接池稳定性?动态数据源连接池问题诊断与优化实践

如何通过监控指标保障数据库连接池稳定性?动态数据源连接池问题诊断与优化实践 【免费下载链接】dynamic-datasource dynamic datasource for springboot 多数据源 动态数据源 主从分离 读写分离 分布式事务 项目地址: https://gitcode.com/gh_mirrors/dy/dynami…...

2026年实测:国内如何直接使用Gemini?技术拆解与镜像站推荐

目前国内用户想直接体验Google Gemini的强大能力,最便捷的方式是通过聚合类镜像平台。经实测,RskAi(ai.rsk.cn) 是一个不错的选择,它实现了国内网络直接访问,并聚合了Gemini、GPT、Claude等主流模型&#x…...

【OpenClaw 保姆级教程】第五篇:前端可视化面板 + 日志监控 + 权限管理(最终篇)

哈喽宝子们!一路跟着教程走到现在,我们已经完成了 OpenClaw 本地部署、多渠道接入、自定义技能、服务器私有化、多技能联动、定时任务与 API 接口化,今天迎来系列最终篇—— 直接给你的 OpenClaw 装上可视化前端面板,搭配实时日志监控、多人权限控制,从命令行工具升级成一…...

告别VIP音频下载烦恼:xmly-downloader-qt5让你轻松获取喜马拉雅付费内容

告别VIP音频下载烦恼:xmly-downloader-qt5让你轻松获取喜马拉雅付费内容 【免费下载链接】xmly-downloader-qt5 喜马拉雅FM专辑下载器. 支持VIP与付费专辑. 使用GoQt5编写(Not Qt Binding). 项目地址: https://gitcode.com/gh_mirrors/xm/xmly-downloader-qt5 …...

ViT图像分类模型与CNN架构对比分析

ViT图像分类模型与CNN架构对比分析 1. 引言 图像分类技术发展到今天,已经涌现出多种不同的架构方案。传统的CNN(卷积神经网络)长期占据主导地位,而近年来兴起的ViT(Vision Transformer)模型则带来了全新的…...

MCP Sampling接口调用流拆解:从零到生产就绪仅需15分钟,附可复用的6层拦截校验模板

第一章:MCP Sampling接口调用流的全景认知与核心价值 MCP(Model Control Protocol)Sampling 接口是现代大模型服务编排中实现可控采样策略的关键契约层。它不仅封装了温度(temperature)、top-k、top-p、重复惩罚&#…...

FireRed-OCR Studio一文详解:Qwen3-VL多模态模型在文档理解中的突破

FireRed-OCR Studio一文详解:Qwen3-VL多模态模型在文档理解中的突破 1. 引言:当文档“开口说话” 想象一下这个场景:你手头有一份几十页的纸质报告,里面充满了复杂的表格、数学公式和精心排版的段落。老板要求你在两小时内把它变…...

4个维度提升论文效率:CQUThesis重庆大学LaTeX模板全攻略

4个维度提升论文效率:CQUThesis重庆大学LaTeX模板全攻略 【免费下载链接】CQUThesis :pencil: 重庆大学毕业论文LaTeX模板---LaTeX Thesis Template for Chongqing University 项目地址: https://gitcode.com/gh_mirrors/cq/CQUThesis CQUThesis作为重庆大学…...

3步解决Navicat密码遗忘难题:开源解密工具全流程使用指南

3步解决Navicat密码遗忘难题:开源解密工具全流程使用指南 【免费下载链接】navicat_password_decrypt 忘记navicat密码时,此工具可以帮您查看密码 项目地址: https://gitcode.com/gh_mirrors/na/navicat_password_decrypt 数据库管理工作中,忘记N…...