首页 > 编程语言 >C++链表小册子

C++链表小册子

时间:2024-04-05 23:11:06浏览次数:15  
标签:小册子 ListNode dummy 对象 C++ 链表 作用域 分配

目录

1.简记

对于C++链表类的创建,有以下简记:

  • 堆分配,new作为右值。返回指针。对象生命周期手动管理,需要显式删除(deleteListNode dummy(0);

  • 栈分配,返回ListNode。仅在作用域内生效(和常见的初始化int一样)。要得到ListNode指针需要&取地址

2.多说两句

ListNode dummy(0);是栈分配。这里dummy 是一个局部变量,它的类型是 ListNode。这里,dummy 是一个局部变量,它的类型是 ListNode,并且通过调用 ListNode 的构造函数(带有一个整数参数)来初始化。这个对象存储在栈上,这意味着它的生命周期与其所在的作用域(通常是一个函数)绑定:一旦出了作用域,这个对象会自动被销毁。

new 关键字用于动态地在堆上分配内存,并返回一个指向新分配的对象的指针。这个新对象是通过调用 ListNode 的构造函数初始化的。与栈分配的对象不同,堆分配的对象不会在离开作用域时自动销毁。它们会一直存在,直到通过 delete 操作显式地被删除。这种方式允许在函数调用结束后仍保持对象存在,但要求开发者负责管理对象的生命周期,包括避免内存泄漏。

3.算法题

题目、题解:
21. 合并两个有序链表
21. 合并两个有序链表-二路归并(双指针)
2. 两数相加
2. 两数相加-高精度链表版+自用语法笔记

标签:小册子,ListNode,dummy,对象,C++,链表,作用域,分配
From: https://www.cnblogs.com/aijisjtu/p/18116310

相关文章

  • C++基础——数组
    数组:就是相同数据类型的集合三种定义和初始化数组:(1)常规数组(C数组)定义最普通的一个定义方式,也是C语言风格数据类型数组名[数组大小](2)动态数组容器vector要加入头文件#include<vector>eg:定义一个整形类型的数组std::vector<int>num(10)push_back在容器后端增加元素......
  • 十大排序算法的C++实现
    2024年4月5日排序算法一、稳定性的定义排序算法的稳定性是指排序过程中,相同元素的相对位置是否会发生变化。稳定的排序算法在排序过程中不会改变元素彼此的位置的相对次序,而不稳定的排序算法经常会改变这个次序。稳定性是一个特别重要的评估标准,排序算法的稳定性是一......
  • 洛谷P1000超级玛丽游戏C++
    题目描述超级玛丽是一个非常经典的游戏。请你用字符画的形式输出超级玛丽中的一个场景。********************####....#.#..###.....##....###.......############......
  • C++(语法以及易错点2)
    1.内联函数 1.1概念 以inline修饰的函数叫做内联函数,编译时C++编译器会在调用内联函数的地方展开,没有函数调用建立栈帧的开销,内联函数提升程序运行的效率。​intADD(inta,intb){returna+b;}​ 1.2特性 1.inline是一种以空间换时间的做法,如果编......
  • C++(语法以及易错点.1)
    1.函数重载 1.1函数重载:是函数的一种特殊情况,C++允许在同一作用域中声明几个功能类似的同名函数,这些同名函数的形参列表(参数个数或类型或类型顺序)不同,常用来处理实现功能类似数据类型不同的问题。include<iostream>usingnamespacestd;//1、参数类型不同int......
  • C++:数组元素逆置
    问题描述:请声明一个含有5个元素的数组,并且将元素逆置。如数组中的元素为1,3,2,5,4,逆置后为4,5,2,3,1。解题思路:1.创建一个含有5个元素的数组,并将其初始化2.实现逆置    2.1记录首元素下标start    2.2记录尾元素下标end    2.3交换首尾元素    ......
  • 【Qt\C++】二维图形化故障树
    文章目录一、故障树是什么?二、相关知识点三、生成故障树1、故障树节点2、定义故障树的树状结构以及读取保存1.使用QTreeView和QStandardItemModel来显示故障树2.使用QXmlStreamReader和QXmlStreamWriter来保存故障树3、定义故障树的图形化结构1.自定义......
  • [C++][C++11][智能指针]分析详解 + 代码模拟
    目录0.智能指针三要素:)1.为什么需要智能指针?2.内存泄漏1.什么是内存泄漏?内存泄漏的危害?2.内存泄漏分类(了解)3.如何检测内存泄漏4.如何避免内存泄漏3.RAII4.智能指针原理5.auto_ptr(失败设计)6.unique_ptr7.shared_ptr1.实现原理:通过引用计数的方式来实现多个shared_ptr......
  • 蓝桥杯_省_21B_E_路径(c++)
    题目描述小蓝学习了最短路径之后特别高兴,他定义了一个特别的图,希望找到图中的最短路径。小蓝的图由2021个结点组成,依次编号1至2021。对于两个不同的结点a,b,如果a和b的差的绝对值大于21,则两个结点之间没有边相连;如果a和b的差的绝对值小于等于21,则两个点之间......
  • 类与对象(上)(C++)
    类的引入C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函数。比如:之前在数据结构初阶中,用C语言方式实现的栈,结构体中只能定义变量;现在以C++方式实现,会发现struct中也可以定义函数。typedefintDataType;structStack{voidInit(size_......