C++中什么时候用. 什么时候用->
学了一年C++今天出了一个大岔子,因为太久没有做链表类型题目了,并且STL用惯了今天遇到一题,写的时候发现完全不对劲,搞慌了,首先我们看题目
2. 两数相加

再看我第一次的解答,先不论结果对不对
错的行为有很多,比如我认为两个节点相连就是一个链表 (理没错),我忘了第一个节点要new空间
在写题的过程中,突然忘了什么时候用. 什么时候用->(平常用class用习惯了,顺手了,这种情况还突然懵了)
那么什么时候用. 什么时候用->呢?
在 C++ 中,.和->都是用于访问对象成员的操作符,但它们的使用场景有所不同:
.操作符
用于直接访问对象的成员:当你有一个具体的对象实例,并且要访问该对象的成员变量或成员函数时,使用.操作符。例如,如果你有一个类Person,其中包含成员变量name和成员函数sayHello(),可以这样使用:
#include <iostream>
#include <string>class Person {
public:std::string name;void sayHello() {std::cout << "Hello, my name is " << name << std::endl;}
};int main() {Person p;p.name = "Alice"; // 使用.操作符访问成员变量p.sayHello(); // 使用.操作符访问成员函数return 0;
}
用于访问结构体或共用体的成员:在 C 语言和 C++ 中,对于结构体和共用体类型的变量,也使用.操作符来访问其成员。
->操作符
用于通过指针访问对象的成员:当你有一个指向对象的指针时,需要使用->操作符来访问对象的成员。例如:
#include <iostream>
#include <string>class Person {
public:std::string name;void sayHello() {std::cout << "Hello, my name is " << name << std::endl;}
};int main() {Person* p = new Person;p->name = "Bob"; // 使用->操作符访问成员变量p->sayHello(); // 使用->操作符访问成员函数delete p;return 0;
}
在链表等数据结构中使用:在处理链表等数据结构时,通常会使用指针来遍历链表节点,此时就会使用->操作符来访问节点中的成员。例如,有一个链表节点结构体ListNode,包含数据成员data和指向下一个节点的指针next,可以这样使用
#include <iostream>struct ListNode {int data;ListNode* next;
};int main() {ListNode* head = new ListNode;head->data = 1;head->next = new ListNode;head->next->data = 2;head->next->next = nullptr;// 遍历链表并输出数据ListNode* p = head;while (p!= nullptr) {std::cout << p->data << " ";p = p->next;}// 释放链表内存p = head;ListNode* next;while (p!= nullptr) {next = p->next;delete p;p = next;}return 0;
}

那么本题的正确答案

相关文章:
C++中什么时候用. 什么时候用->
学了一年C今天出了一个大岔子,因为太久没有做链表类型题目了,并且STL用惯了今天遇到一题,写的时候发现完全不对劲,搞慌了,首先我们看题目 2. 两数相加 再看我第一次的解答,先不论结果对不对 错的行为有很多…...
从云原生到 AI 原生,谈谈我经历的网关发展历程和趋势
作者:谢吉宝(唐三) 编者按: 云原生 API 网关系列教程即将推出,欢迎文末查看教程内容。本文整理自阿里云智能集团资深技术专家,云原生产品线中间件负责人谢吉宝(唐三) 在云栖大会的精…...
【Python深入浅出】Python3正则表达式:开启高效字符串处理大门
目录 一、正则表达式基础入门1.1 什么是正则表达式1.2 正则表达式的语法规则1.3 特殊字符与转义 二、Python 中的 re 模块2.1 re 模块概述2.2 常用函数与方法2.2.1 re.match()2.2.2 re.search()2.2.3 re.findall()2.2.4 re.sub() 2.3 修饰符(Flags)的使用…...
Vue.js Vue CLI 安装与使用
Vue.js Vue CLI 安装与使用 今天我们来聊聊 Vue CLI 的安装与使用。对于开发 Vue 应用来说,Vue CLI 是一个非常强大的工具,它能帮助你快速创建项目脚手架、配置开发环境、自动化构建流程,从而大大提高开发效率。下面我就和大家一步一步地讲解…...
科技的尽头:在有限与永恒的夹缝中寻找文明的真谛
当人类用燧石点燃第一簇文明之火时,科技发展的齿轮便已开始转动。这个从原始工具到量子计算机的进化历程,既是人类突破生物局限的史诗,也是文明不断自我解构与重构的哲学叙事。站在人工智能与基因编辑并行的时代节点,"科技尽…...
【牛客】动态规划专题一:斐波那契数列
文章目录 DP1 斐波那契数列法1:递归法2:动态规划法3:优化空间复杂度 2.分割连接字符串3. 给定一个字符串s和一组单词dict,在s中添加空格将s变成一个句子 DP1 斐波那契数列 法1:递归 // 递归 #include <iostream>…...
java8、9新特性
JAVA8 Lambda 表达式 (parameters) -> expression 或 (parameters) ->{ statements; } 提供了一种更为简洁的语法,尤其适用于函数式接口。相比于传统的匿名内部类,Lambda 表达式使得代码更为紧凑,减少了样板代码的编写。 它允许将函…...
作业:zuoye
1.闹钟(错的) #include "widget.h" #include "ui_widget.h" #include <QMessageBox>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);// 初始化定时器objTimer new QTimer(th…...
redis底层数据结构——链表
文章目录 定义内部实现总结 定义 链表提供了高效的节点重排能力,以及顺序性的节点访间方式,并且可以通过增删节点来灵活地调整链表的长度。 作为一种常用数据结构,链表内置在很多高级的编程语言里面,因为Redis使用的C语言并没有…...
问题解决 4S 法
在深入研读《像高手一样解决问题》的第二章后,犹如打开了一扇通往高效问题解决领域的新大门,其中所阐述的问题解决 4S 法,更是给人以拨云见日之感。 一、陈述(State):明确问题本质 这是问题解决的起始点&…...
SQL-leetcode—1407. 排名靠前的旅行者
1407. 排名靠前的旅行者 表:Users ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ---------------------- id 是该表中具有唯一值的列。 name 是用户名字。 表:Rides -------------------…...
机器学习(李宏毅)——Transformer
一、前言 本文章作为学习2023年《李宏毅机器学习课程》的笔记,感谢台湾大学李宏毅教授的课程,respect!!! 读这篇文章必须先了解self-attention,可参阅我上一篇。 二、大纲 Transformer问世原理剖析模型训…...
React进阶之React状态管理CRA
React状态管理&CRA 状态管理理论讲解案例 context 上下文结合状态来维护todoListindex.jsApp.jsTaskList.jsTasksContext.jsAddTask.js Escape 脱围机制refforwardRef(不建议使用) CRA 状态管理 理论讲解 如何针对 effect -> 对action的触发 -&…...
攻克AWS认证机器学习工程师(AWS Certified Machine Learning Engineer) - 助理级别认证:我的成功路线图
引言 当我决定考取AWS认证机器学习工程师 - 助理(AWS Certified Machine Learning Engineer — Associate)级别证书时,我就预料到这将是一段充满挑战但回报颇丰的旅程。跟你说吧,它在这两方面都没让我失望。这项考试面向的是不仅理解机器学习原理,还对AWS生态系统有扎实基…...
前端开发环境
vscde nrm 切换源管理 nvm 切换node版本工具 nodemon node运行js文件热更新 pxcook 易用的自动标注工具, 生成前端代码, 设计研发协作利器,比PS轻量 TypeScript 安装tsc 它的作用就是将ts文件编译为js文件 npm i typescript -g 输入tsc -v能够看到东西,就说明好了 …...
Web自动化测试—测试用例流程设计
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、测试用例通用结构回顾 1.1、现有测试用例存在的问题 可维护性差可读性差稳定性差 1.2、用例结构设计 测试用例的编排测试用例的项目结构 1.3、自动化测试…...
HTML全局属性与Meta元信息详解:优化网页的灵魂
目录 前言 一、HTML中的全局属性 常用的全局属性 二、Meta元信息标签:网页背后的重要配置 常用的Meta标签 三、Meta元信息的进阶使用 总结 前言 在HTML开发中,有一些属性和标签是全局性的,能够影响网页的多个方面,比如页面的…...
day001 折半查找/二分查找
day001 折半查找/二分查找 适用场景顺序表或者顺序数组 时间复杂度:log2N 算法思路 pre: 下限为0,上限为数组长度-1, 下限小于等于上限进行循环 if 比较目标值和中间值,if 大于: 则下限中间值索引1else: 小于: 则上限中间值索…...
Linux 资源监控:优化与跟踪系统性能
在 Evoxt,我们深知有效的 Linux 资源监控对于优化服务器性能至关重要。本指南将介绍关键工具和策略,帮助您监控 CPU、内存、磁盘和网络使用情况,确保您的 Linux 系统始终保持高效运行。 实时系统监控 使用 top(交互式系统监控&am…...
java安全中的类加载
java安全中的类加载 提前声明: 本文所涉及的内容仅供参考与教育目的,旨在普及网络安全相关知识。其内容不代表任何机构、组织或个人的权威建议,亦不构成具体的操作指南或法律依据。作者及发布平台对因使用本文信息直接或间接引发的任何风险、损失或法律纠…...
模型介导钓鱼:AI 助手被诱导生成钓鱼内容的机理与防御
摘要 随着 Microsoft 365 Copilot、Google Gemini for Workspace 等 AI 助手在企业办公场景的深度普及,一类依托提示注入实现的模型介导钓鱼(Model-Mediated Phishing) 攻击快速兴起。攻击者通过在正常邮件中嵌入低可见性恶意指令,…...
Canvas Quest商业人像生成应用:电商模特图低成本自动化生产方案
Canvas Quest商业人像生成应用:电商模特图低成本自动化生产方案 1. 电商模特图的痛点与机遇 电商行业有个公开的秘密:商品展示图的拍摄成本往往比商品本身还高。特别是服装、配饰和美妆类目,每季新品需要拍摄上百套模特图,传统方…...
无刷电机S型与梯形加减速曲线实战:从算法到代码的平滑运动实现
1. 无刷电机加减速控制的核心价值 第一次调试无刷电机时,我盯着那个疯狂抖动的机械臂陷入了沉思——原来不加控制的电机就像脱缰的野马,根本没法用在精密设备上。后来才明白,加减速曲线就是驯服这匹野马的缰绳。无论是工厂里的机械臂&#x…...
如何构建大型可维护的Vugu项目:Go WebAssembly UI库最佳实践指南
如何构建大型可维护的Vugu项目:Go WebAssembly UI库最佳实践指南 【免费下载链接】vugu Vugu: A modern UI library for GoWebAssembly (experimental) 项目地址: https://gitcode.com/gh_mirrors/vu/vugu Vugu是一个现代化的Go语言WebAssembly UI库…...
告别模拟信号烦恼:手把手教你用51单片机驱动DAC0832输出正弦波(附Proteus仿真)
51单片机实战:用DAC0832打造完美正弦波发生器 在电子设计领域,能够精确生成模拟信号是一项基础却至关重要的技能。想象一下,当你亲手搭建的电路在示波器上显示出光滑的正弦波形时,那种成就感是无与伦比的。本文将带你从零开始&…...
RVC与VITS技术对比:检索式vs端到端语音转换的适用场景分析
RVC与VITS技术对比:检索式vs端到端语音转换的适用场景分析 1. 引言 你有没有想过,为什么有些AI翻唱听起来特别像原唱,而有些则感觉“味儿”不太对?或者,为什么有些语音转换工具训练起来飞快,但效果时好时…...
永磁同步电机矢量控制进阶:电流环前馈补偿的5个关键点与避坑指南
永磁同步电机矢量控制进阶:电流环前馈补偿的5个关键点与避坑指南 在工业伺服系统与新能源驱动领域,永磁同步电机(PMSM)凭借其高功率密度和动态响应特性占据主导地位。而电流环作为矢量控制的内环,其性能直接影响整个系…...
YOLOv9官方镜像快速入门:三步完成图片检测,支持自定义数据集训练
YOLOv9官方镜像快速入门:三步完成图片检测,支持自定义数据集训练 1. 环境准备与快速部署 YOLOv9官方训练与推理镜像已经预装了完整的深度学习开发环境,包含所有必要的依赖项。这意味着你不需要手动安装Python、CUDA或PyTorch,也…...
Loop:重新定义macOS窗口管理的艺术与科学
Loop:重新定义macOS窗口管理的艺术与科学 【免费下载链接】Loop MacOS窗口管理 项目地址: https://gitcode.com/GitHub_Trending/lo/Loop 在数字工作空间中,窗口管理不再是简单的排列组合,而是一种提升专注力与创造力的空间艺术。Loop…...
Dify新手必看:3种创建应用的方法全解析(附模板使用技巧)
Dify新手必看:3种创建应用的方法全解析(附模板使用技巧) 第一次打开Dify工作室时,面对琳琅满目的功能选项,很多开发者都会感到无从下手。作为一个从零开始接触Dify的过来人,我完全理解这种困惑——毕竟当初…...
