c++基础——结构体
结构体
结构体(struct),可以看做是一系列称为成员元素的组合体。
可以看做是自定义的数据类型。
定义结构体
struct abc {int x;int y;
} e[array_length];const abc a;
abc b, B[array_length], tmp;
abc *c;上例中定义了一个名为 abc 的结构体,两个成员元素 x, y,类型都为 int。
在 } 后,定义了数据类型为 abc 的常量 a,变量 b,变量 tmp,数组 B,指针 c。对于某种已经存在的类型,都可以使用这里的方法进行定义常量、变量、指针、数组等。
关于指针:不必强求掌握。
定义指针
如果是定义内置类型的指针,则与平常定义指针一样。
如果是定义结构体指针,在定义中使用 StructName* 进行定义。
struct Edge {/*...*/Edge* nxt;
};访问/修改成员元素
可以使用 变量名.成员元素名 进行访问。
如 : 输出 var 的 v 成员:cout << var.v。
也可以使用 指针名->成员元素名 或者 使用 (*指针名).成员元素名 进行访问。
如 : 将结构体指针 q 指向的结构体的成员元素 v 赋值为 tmp:(*q).v = tmp 或者 q->v = tmp。
为什么需要结构体?
首先,条条大路通罗马,可以不使用结构体达到相同的效果。但是结构体能够显式地将成员元素(在算法竞赛中通常是变量)捆绑在一起,如本例中的 abc 结构体,便将 x,y 放在了一起(定义这个结构体的实际意义是表示一件物品的重量与价值)。这样的好处边是限制了成员元素的使用。
想象一下,如果不使用结构体而且有两个数组 x[], X[],很容易写混淆。但如果使用结构体,能够减轻出现使用变量错误的几率。
并且不同的结构体(结构体类型,如 abc 这个结构体)或者不同的结构体变量(结构体的实例,如上方的 e 数组)可以拥有相同名字的成员元素(如 tmp.x,b.y),同名的成员元素相互独立(拥有独自的内存,比如说修改 tmp.x 不会影响 b.x 的值)。
这样的好处是可以使用尽可能相同或者相近的变量去描述一个物品。比如说 abc 里有 x 这个成员变量;我们还可以定义一个 Car 结构体,同时也拥有 x 这个成员;如果不使用结构体,或许我们就需要定义 xOfabc[],xOfCar[] 等不同名称的数组来区分。
相关文章:
c++基础——结构体
结构体结构体(struct),可以看做是一系列称为成员元素的组合体。可以看做是自定义的数据类型。定义结构体struct abc {int x;int y; } e[array_length];const abc a; abc b, B[array_length], tmp; abc *c;上例中定义了一个名为 abc 的结构体&…...
applicationContext相关加载
spring refresh 概述 refresh是一个方法,spring中所有的ApplicationContext容器都需要通过refresh方法初始化; 处理步骤 其中refresh方法包含12个主要的处理步骤: 1、第1个步骤做前置准备 2、第2~6步骤创建BeanFactory(Appl…...
数据同步工具Sqoop
大数据Hadoop之——数据同步工具SqoopSqoop基本原理及常用方法 1 概述 Apache Sqoop(SQL-to-Hadoop)项目旨在协助RDBMS(Relational Database Management System:关系型数据库管理系统)与Hadoop之间进行高效的大数据交…...
Kafka 版本
kafka-2.11-2.1.1 : Kafka 1.0.0 后,Kafka 版本命名规则从 4 位到 3 位Kafka版本号是 2.1.1前 2 : 大版本号 (MajorVersion)中 1 : 小版本号或次版本号 (Minor Version)后 1 : 修订版本号 (Patch) Kafka 0.7 最早开源版本 : 只提供最基础的消息队列功…...
ElasticSearch 在Java中的各种实现
ES JavaAPI的相关体系: 词条查询 所谓词条查询,也就是ES不会对查询条件进行分词处理,只有当词条和查询字符串完全匹配时,才会被查询到。 等值查询-term 等值查询,即筛选出一个字段等于特定值的所有记录。 【SQL】 s…...
SpringBoot整合Knife4j
文章目录前言一、Knife4j是什么?二、使用步骤1.导入依赖2.编写配置文件3.编写controller和实体类4.测试总结前言 接上篇整合Swagger链接奉上http://t.csdn.cn/9mXSu 一、Knife4j是什么? 官方文档:https://doc.xiaominfo.com/ knife4j可以理解…...
MyISAM和InnoDB存储引擎的区别
目录前言存储引擎区别事务外键表单的存储数据查询效率数据更新效率如何选择前言 MyISAM和InnoDB是使用MySQL最常用的两种存储引擎,在5.5版本之前默认采用MyISAM存储引擎,从5.5开始采用InnoDB存储引擎。 存储引擎 存储引擎是:数据库管理系统…...
SpringMVC自定义处理多种日期格式的格式转换器
package cn.itcast.utils;import org.springframework.core.convert.converter.Converter;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;/*** 把字符串转换日期*/public class StringToDateConverter implements Converter<String…...
NYUv2生成边界GT(1)
看了cityscape和NYUv2生成边界GT的代码后,因为自己使用的是NYUv2数据集,所以需要对自己的数据集进行处理。CASENet生成边界GT所使用的代码是MATLAB,所以又重新看了一下MATLAB的代码,并进行修改,生成了自己的边界代码。…...
Spring基本概念与使用
文章目录一、Spring概念1.容器2.IoC3.DI4.Ioc与DI的关系二、Spring创建与使用1.Maven2.添加Spring框架支持注:国内的Maven源配置3.简单实例(1)创建一个Bean对象。(2)将Bean对象存储到Spring当中(3ÿ…...
安恒信息java实习面经
目录1.Java ME、EE、SE的区别,Java EE相对于SE多了哪些东西?2.jdk与jre的区别3.说一下java的一些命令,怎么运行一个jar包4.简单说一下java数据类型及使用场景5.Map跟Collection有几种实现?6.面向对象的特性7.重载和重写的区别8.重…...
第八章:枚举类与注解
第八章:枚举类与注解 8.1:枚举类的使用 类的对象只有有限个,确定的。我们称此类为枚举类。当需要定义一组常量是,强烈建议使用枚举类。如果枚举类中只有一个对象,则可以作为单例模式的实现方式。 如何定义枚举类 …...
Ceph介绍
分布式存储概述 常用的存储可以分为DAS、NAS和SAN三类 DAS:直接连接存储,是指通过SCSI接口或FC接口直接连接到一台计算机上,常见的就是服务器的硬盘NAS:网络附加存储,是指将存储设备通过标准的网络拓扑结构ÿ…...
remove 和 erase 的区别
remove 和 erase 的区别 以容器vector来说明remove和erase的区别 在STL中,vector容器也提供了remove()和erase()函数,用于从vector中删除元素。虽然这两个函数都可以实现删除元素的功能,但是它们之间还是有一些区别的。 remove() remove(…...
NFTScan:怎么使用 NFT API 开发一个 NFT 数据分析平台?
对很多开发者来说,在 NFT 数据海洋中需要对每个 NFT 进行索引和筛选是十分困难且繁琐的,NFT 数据获取仍是一大问题。而数据平台提供的 API 使得开发者可以通过接口获取区块链上 NFT 的详细信息,并对其进行分析、处理、统计和可视化。在本篇文…...
ECOLOY直接更换流程表单后导致历史流程中数据为空白的解决方案
用户反馈流历史流程打开是空白了没有内容。 一、问题调查分析: 工作流“XX0204 员工培训协议审批流程”workflowId37166产生的7个具体流程中,创建日期为2021年的4个具体流程原先引用的数据库表单应该是“劳动合同签订审批表”(formtable_main_190)&…...
mysql中的共享锁,排他锁,间隙锁,意向锁及死锁机制
一、前言(以下均为读完 高性能Mysql第四版 后的个人理解,建议阅读,挺不错的)在写锁机制前先简单贴出mysql InnoDB引擎中的事务特性与隔离级别:事务的ACID标准(1)原子性-atomicity:一个事务作为一个不可分割…...
SpringBoot整合MybatisPlus
文章目录前言一、MybatisPlus是什么?二、使用步骤1.导入依赖2.编写配置文件3.编写Controller和实体类4.编写持久层接口mapper5.启动类加包扫描注解6.测试总结前言 本篇记录一下SpringBoot整合MybatisPlus 一、MybatisPlus是什么? MyBatis-Plusÿ…...
中电金信Gien享汇・大数据专题|金融行业数据架构及模型演进
本期嘉宾 陈子刚 中电金信商业分析事业部华南区总经理 毕业于复旦大学,硕士研究生;拥有16年以上金融行业商业智能领域从业经验;曾就职于中国工商银行、Teradata、东亚银行,服务于平安银行、广发银行、招商银行、广东农信、招商…...
Cadence Allegro 导出Design Cross Section报告详解
⏪《上一篇》 🏡《上级目录》 ⏩《下一篇》 目录 1,概述2,Design Cross Section作用3,Design Cross Section示例4,Component Report导出方法4.1,方法14.2,方法2B站关注“硬小二”浏览更多演示视频 1,概述 <...
利用Taotoken的OpenAI兼容协议快速迁移现有Node点js应用
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken的OpenAI兼容协议快速迁移现有Node.js应用 对于已经基于OpenAI官方Node.js SDK构建了应用或服务的团队,当…...
物联网LoRa系列-2:从感知到应用,详解LoRa在分层架构中的关键角色
1. LoRa技术入门:从无线通信到物联网连接 第一次接触LoRa是在五年前的一个智慧农业项目上。当时客户需要在2000亩的茶园部署环境监测系统,传统WiFi和4G网络要么覆盖不足,要么功耗太高。当我看到LoRa终端设备在单节电池供电下能工作3年时&…...
键盘改造艺术:用SharpKeys重新定义Windows输入体验
键盘改造艺术:用SharpKeys重新定义Windows输入体验 【免费下载链接】sharpkeys SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other key. 项目地址: https://gitcode.com/gh_mirrors/sh/sharpkeys 在数…...
利用Taotoken透明计费与账单追溯功能优化项目成本管理
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用Taotoken透明计费与账单追溯功能优化项目成本管理 对于项目管理者或独立开发者而言,大模型API的调用成本常常是一个…...
GPT-5.5-Cyber深度解析:AI网络安全专用化时代的开启与行业重构
引言:一场改变游戏规则的发布 2026年5月7日,OpenAI在其官方博客发布了一篇题为《Scaling Trusted Access for Cyber with GPT-5.5 and GPT-5.5-Cyber》的文章,正式宣布推出其首款网络安全专用大模型GPT-5.5-Cyber。这一发布距离通用版GPT-5.…...
Taotoken用量看板如何帮助个人开发者控制成本
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 Taotoken用量看板如何帮助个人开发者控制成本 对于个人开发者或小型工作室而言,在探索和集成大模型能力时,…...
TropicClaw:模块化命令行工具,高效抓取与处理地理环境数据
1. 项目概述:一个为开发者打造的“热带之爪”如果你经常在GitHub上寻找那些能解决特定痛点、设计精巧又易于集成的命令行工具,那么“TropicClaw”这个名字可能会让你眼前一亮。这个项目,从它的名字就能感受到一丝热带风情与实用主义的结合——…...
全球仅200个开发者通行证配额,SITS 2026闭门实验舱议程首曝——你还在等什么?
更多请点击: https://intelliparadigm.com 第一章:2026奇点智能技术大会完整议程曝光:SITS 2026四大看点抢先看 全球瞩目的奇点智能技术大会(Singularity Intelligence Technology Summit, SITS)将于2026年5月12–15日…...
如何快速解决macOS证书信任问题:res-downloader完整配置指南
如何快速解决macOS证书信任问题:res-downloader完整配置指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在ma…...
你还在commit --amend模型权重?——2026奇点大会“Git for AI最佳实践”TOP3方案已强制写入《生成式AI研发治理白皮书》(V1.0正式版明日下线)
更多请点击: https://intelliparadigm.com 第一章:AI原生版本控制:2026奇点智能技术大会Git for AI最佳实践 在2026奇点智能技术大会上,Git for AI正式成为AI工程化基础设施的核心组件。与传统Git不同,AI原生版本控制…...
